*/ class FaqRepository extends BaseRepository implements FaqRepositoryInterface { public function __construct(Faq $model) { parent::__construct($model); } /** * @param array $filters * @return LengthAwarePaginator */ public function paginate(array $filters = [], int $perPage = 15): LengthAwarePaginator { $query = $this->model->newQuery(); if (! empty($filters['category'])) { $query->where('category', $filters['category']); } return $query->orderBy('order_index')->paginate($perPage); } /** * @return Collection */ public function getByCategory(FaqCategory $category): Collection { return Cache::remember("faqs.{$category->value}", 3600, fn () => $this->model->newQuery() ->where('category', $category) ->where('is_active', true) ->orderBy('order_index') ->get()); } }