authorize('viewAny', User::class); return UserResource::collection(User::all()); } public function store() { $this->authorize('create', User::class); request()['password'] = Hash::make(Str::random(30)); $user = User::create($this->validateData()); SendMailNewUserJob::dispatch($user); return (new UserResource($user)) ->response() ->setStatusCode(Response::HTTP_CREATED); } public function show(User $user) { return new UserResource($user); } private function validateData() { return request()->validate([ 'name' => 'required', 'email' => 'required|email', 'password' => 'required' ]); } }