getCategories(); $consumptionTimes = $request->getConsumptionTimes(); $inspirations = $request->getInspirations(); $seasons = $request->getSeasons(); $search = $request->getSearchValue() ?? ''; // * Load all recipes for client-side display $allRecipes = []; $page = 1; $perPage = 100; do { $pagination = Pagination::ofPage($page, $perPage); $paginatedRecipes = $this->recipeDirectory->getPaginatedRecipes( pagination: $pagination, productRanges: $categories, consumptionTimes: $consumptionTimes, inspirations: $inspirations, seasons: $seasons, search: $search ); foreach ($paginatedRecipes->items() as $recipe) { $allRecipes[] = $recipe; } $page++; } while ($page <= $paginatedRecipes->lastPage()); $mockedPaginatedRecipes = new LengthAwarePaginator( items: $allRecipes, total: count($allRecipes), perPage: max(1, count($allRecipes)), currentPage: 1, ); return Inertia::render('front/Pages/Recipes/Index', [ 'paginatedRecipes' => $mockedPaginatedRecipes, ]); } public function show(Recipe $recipe): Response { $relatedProducts = $this->productDirectory ->getRelatedProducts($recipe->id(), 10); return Inertia::render('front/Pages/Recipes/Show', [ 'recipe' => $recipe, 'relatedProducts' => $relatedProducts, ]); } }