authorize('viewAny', User::class); return UserResource::collection($action->list()); } public function store(CreateUserRequest $request, CreateUserAction $action): JsonResponse { $this->authorize('create', User::class); $user = $action->handle(UserData::fromCreateRequest($request)); return UserResource::make($user)->response()->setStatusCode(201); } public function update(UpdateUserRequest $request, User $user, UpdateUserAction $action): UserResource { $this->authorize('update', $user); $updated = $action->handle($user, UserData::fromUpdateRequest($request)); return UserResource::make($updated); } public function destroy(User $user): JsonResponse { $this->authorize('delete', $user); $user->delete(); return response()->json(null, 204); } }