authorize('viewAny', Client::class); return ClientResource::collection($action->list()); } public function store(CreateClientRequest $request, CreateClientAction $action): JsonResponse { $this->authorize('create', Client::class); $client = $action->handle(ClientData::fromCreateRequest($request)); return ClientResource::make($client)->response()->setStatusCode(201); } public function show(int $id, GetClientAction $action): ClientResource { $client = $action->find($id); $this->authorize('view', $client); return ClientResource::make($client); } public function update(UpdateClientRequest $request, Client $client, UpdateClientAction $action): ClientResource { $this->authorize('update', $client); $updated = $action->handle($client, ClientData::fromUpdateRequest($request)); return ClientResource::make($updated); } }