order = $order; $this->orderStep = $orderStep; } public function execute(OrderObject $order, StepObject $step){ $orderStep = $this->orderStep->where('order_id', $order->getOrderId()) ->where('complete', 0)->orderBy('sequence')->first(); $nextStep = $orderStep ? $orderStep->reference_id : null; $repository = $this->order->findOrFail($order->getOrderId()); $repository->current_step = $nextStep; if($nextStep === null && $step !== Constants::ORDER_PROCESSING_STEP){ $repository->complete = true; } $repository->save(); } }