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