category_id ?? 0; $favorteArticles = $user->favorites() ->when($category_id, function ($q) use ($category_id) { $q->whereHasMorph('favoriteable', [Article::class], function ($query) use ($category_id) { $query->whereHas('categories', function ($q) use ($category_id) { $q->where('cms_categories.id', $category_id); }); }); }) ->paginate(); $data = [ 'categories' => new CategoryCollection(Category::query()->get()), 'favorites' => new FavoriteCollection($favorteArticles), ]; return $this->success($data); } }