repository->paginate( filters: $request->only('category', 'search', 'sort'), perPage: $request->integer('per_page', 15), ); return CourseResource::collection($courses); } #[OA\Get( path: '/api/v1/courses/{slug}', summary: 'Eğitim detayı', description: 'Slug ile eğitim detayını döndürür.', tags: ['Courses'], parameters: [ new OA\Parameter(name: 'slug', in: 'path', required: true, schema: new OA\Schema(type: 'string')), ], responses: [ new OA\Response(response: 200, description: 'Eğitim detayı'), new OA\Response(response: 404, description: 'Eğitim bulunamadı'), ], )] public function show(string $slug): CourseResource { $course = $this->repository->findBySlug($slug); abort_if(! $course, 404, 'Eğitim bulunamadı.'); return new CourseResource($course); } }