id) { $this->logRepository->create([ 'agent' => request()->userAgent(), 'client_ip' => request()->getClientIp(), 'username' => auth()->guard('admin')->user()->username ?? 'System', 'description' => (auth()->guard('admin')->user()->username ?? 'System') . " created new Order with Order id: " . $order->id, 'customer_id' => $order->customer_id ]); } } /** * Handle the Order "updated" event. */ public function updated(Order $order): void { $this->syncCouponRedemption($order); if ($order->getDirty()) { foreach ($order->getDirty() as $attribute => $value) { { if ($attribute !== 'updated_at') { $old_value = $order->getRawOriginal($attribute); $this->logRepository->create([ 'agent' => request()->userAgent(), 'client_ip' => request()->getClientIp(), 'username' => auth()->guard('admin')->user()->username ?? 'System', 'description' => (auth()->guard('admin')->user()->username ?? 'System') . " Modified Order ID#" . $order->id . " - #$attribute from $old_value to $value", 'customer_id' => $order->customer_id ]); } } } } } /** * Handle the Order "deleted" event. */ public function deleted(Order $order): void { if ($order->coupon_id) { app(CouponService::class)->setReleased($order, true); } $this->logRepository->create([ 'agent' => request()->userAgent(), 'client_ip' => request()->getClientIp(), 'username' => auth()->guard('admin')->user()->username ?? 'System', 'description' => (auth()->guard('admin')->user()->username ?? 'System') . " Deleted Order ID#" . $order->getOriginal('id'), 'customer_id' => $order->getOriginal('customer_id') ]); } /** * Handle the Order "restored" event. */ public function restored(Order $order): void { // } /** * Handle the Order "force deleted" event. */ public function forceDeleted(Order $order): void { // } private function syncCouponRedemption(Order $order): void { if (! $order->coupon_id || ! $order->wasChanged('status')) { return; } app(CouponService::class)->setReleased($order, (int) $order->status === OrderStatus::CANCELLED->value); } }