canUpdateCurrentStep = $canUpdateCurrentStep; $this->updatesCurrentStep = $updatesCurrentStep; $this->fetchesOrder = $fetchesOrder; $this->fetchesOrderSteps = $fetchesOrderSteps; } public function execute(int $orderId, string $currentStep){ $order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId); $this->canUpdateCurrentStep->passes($order_object); $order = $this->fetchesOrder->execute(['id'=>$order_object->getId()]); $order_steps = $this->fetchesOrderSteps->execute(['order_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING, 'order_by' => 'sequence', 'per_page' => 1]); $order_object->setCurrentStep($currentStep); $order = $this->updatesCurrentStep->execute($order, $order_object); } }