authorize('viewAny', Order::class); $output = $this->executor->execute( $query, $request->toGetBoPaginatedOrdersQueryInput(), ); return view('bo.orders.index', [ 'orders' => $output->orders, 'searchFields' => $output->searchFields, 'orderStatusList' => $output->orderStatusList, ]); } public function today(Request $request, GetBoTodayOrdersQuery $query): View { $this->authorize('viewAnyToday', Order::class); $orders = $this->executor->execute( $query, new GetBoTodayOrdersQueryInput(RequestHelper::pagination($request)), ); return view('bo.orders.index-today', compact('orders')); } public function show(Order $order, GetBoOrderDetailQuery $query): View { $this->authorize('view', $order); $output = $this->executor->execute( $query, new GetBoOrderDetailQueryInput($order), ); return view('bo.orders.view', [ 'order' => $output->order, 'shop' => $output->shop, 'employee' => $output->employee, 'crmCustomer' => $output->crmCustomer, ]); } public function cancel(Order $order, CancelOrder $action): RedirectResponse { $this->authorize('cancel', $order); try { $this->executor->execute( $action, new CancelOrderInput($order), ); } catch (\Throwable) { return back()->with('error', trans('Action failed')); } return back()->with('warning', trans('Order cancelled')); } }