registry = $registry; } public function run(Step $step, Workflow $workflow, WorkflowRun $workflowRun): void { $action = $this->registry->getAction($step->getKey()); if (!$action) { throw new InvalidStateException(); } $validationResult = $action->validate($workflow, $workflowRun, $step); if (!$validationResult->hasErrors()) { $action->run($validationResult); } } }