where('stock', '>', 0); if ($request->filled('search')) { $query->where(function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%') ->orWhere('description', 'like', '%' . $request->search . '%'); }); } if ($request->filled('age_range')) { $query->where('age_range', 'like', '%' . $request->age_range . '%'); } if ($request->filled('category')) { $query->where('category', $request->category); } if ($request->filled('min_price')) { $query->where('price', '>=', $request->min_price); } if ($request->filled('max_price')) { $query->where('price', '<=', $request->max_price); } $products = $query->latest()->paginate(12)->withQueryString(); $categories = Product::whereNotNull('category')->distinct()->pluck('category'); return view('user.shop', compact('products', 'categories')); } }