user(); $search = trim((string) $request->query('q', '')); $storeFilter = $request->query('store'); $storeIds = WooStore::query()->where('user_id', $user->id)->pluck('id'); $orders = WooOrder::query() ->whereIn('woo_store_id', $storeIds) ->when($storeFilter, fn ($q) => $q->where('woo_store_id', $storeFilter)) ->when($search !== '', function ($query) use ($search) { $like = '%'.$search.'%'; $query->where(function ($inner) use ($like) { $inner->where('customer_name', 'like', $like) ->orWhere('customer_email', 'like', $like) ->orWhere('order_number', 'like', $like); }); }) ->with('store') ->latest('created_at') ->paginate(20) ->withQueryString(); $stores = WooStore::query()->where('user_id', $user->id)->orderBy('site_name')->get(); return view('woo.orders.index', compact('orders', 'stores', 'search', 'storeFilter')); } public function updateStatus(Request $request, WooOrder $order): RedirectResponse { $order->load('store'); abort_if($order->store?->user_id !== $request->user()->id, 403); $validated = $request->validate([ 'fulfillment_status' => ['required', Rule::in(array_keys(WooOrder::FULFILLMENT_STATUSES))], ]); $order->update(['fulfillment_status' => $validated['fulfillment_status']]); $this->sync->push($order->fresh()); return back()->with('success', 'Fulfillment status updated.'); } }