service = $service; } public function index(Request $request) { $perPage = min(100, max(1, (int)$request->get('per_page', 10))); $awards = $this->service->getAwards($perPage); return $this->paginatedResponse( 'Awards retrieved successfully', $awards->through(fn($award) => new AwardResource($award)), $awards ); } public function show($id) { $award = $this->service->getAward($id); return $this->successResponse( 'Award retrieved successfully', new AwardResource($award) ); } public function getScientistsByAward($id) { $award = $this->service->getAward($id); return $this->successResponse( 'Scientists retrieved successfully', ScientistResource::collection($award->scientists) ); } }