Category::active()->get(), 'bestSellers' => Product::with(['categories' => fn ($q) => $q->active(), 'prices']) ->when($search, function ($query, $search) { $query->where(function ($q) use ($search) { $q->where('name', 'like', "%{$search}%") ->orWhere('description', 'like', "%{$search}%"); }); }) ->when($categorySlug, function ($query, $categorySlug) { $query->whereHas('categories', function ($q) use ($categorySlug) { $q->where('categories.slug', $categorySlug); }); }) ->active() ->latest() ->paginate(12) ->withQueryString(), 'topSellingProducts' => Product::with(['categories' => fn ($q) => $q->active(), 'prices'])->withCount('orderItems')->active()->orderBy('order_items_count', 'desc')->take(3)->get(), ]); } }