middleware('guest'); } /** * The user has been registered. * * @param \Illuminate\Http\Request $request * @param \App\User $user * @return \Illuminate\Http\JsonResponse */ protected function registered(Request $request, User $user) { if ($user instanceof MustVerifyEmail) { return response()->json(['status' => trans('verification.sent')]); } return response()->json(array_merge( (new UserResource($user))->toArray($request), [ 'appsumo_license' => $this->appsumoLicense, ])); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email:filter|max:255|unique:users|indisposable', 'password' => 'required|min:6|confirmed', 'hear_about_us' => 'required|string', 'agree_terms' => ['required', Rule::in([true])], 'appsumo_license' => ['nullable'], ], [ 'agree_terms' => 'Please agree with the terms and conditions.' ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { $workspace = Workspace::create([ 'name' => 'My Workspace', 'icon' => '🧪', ]); $user = User::create([ 'name' => $data['name'], 'email' => strtolower($data['email']), 'password' => bcrypt($data['password']), 'hear_about_us' => $data['hear_about_us'] ]); // Add relation with user $user->workspaces()->sync([ $workspace->id => [ 'role' => 'admin' ] ], false); $this->appsumoLicense = AppSumoAuthController::registerWithLicense($user, $data['appsumo_license'] ?? null); return $user; } }