canCreateStep = $canCreateStep; $this->createsSteps = $createsSteps; $this->fetchesOrder = $fetchesOrder; $this->fetchesSteps = $fetchesSteps; } /** * @param Order $order * @param string $currentStep * @param $appointee_id * @return Model * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function execute(Order $order, string $currentStep, $appointee_id){ $stepObject = new StepsObject( $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null); $this->canCreateStep->passes($stepObject); return $this->createsSteps->execute($order, $order_steps_object); } }