calculators = [ 18 => AverageBedDaysCalculator::class, 19 => LethalityCalculator::class, 21 => PreoperativeDaysCalculator::class, ]; } public function getCalculator(int $metricId): MetricCalculatorInterface { if (!isset($this->calculators[$metricId])) { throw new RuntimeException("No calculator for metric ID: {$metricId}"); } $class = $this->calculators[$metricId]; return app($class); } public function getAllCalculators(): array { $calculators = []; foreach (array_keys($this->calculators) as $metricId) { $calculators[$metricId] = $this->getCalculator($metricId); } return $calculators; } }