validator($request->all())->validate(); event(new Registered($user = $this->create($request->all()))); Auth::guard()->login($user); sendSMSVerification($user->phone); return to_route('sms-verification'); } /** * Get a validator for an incoming registration request. * * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { $data['phone'] = substr(str_replace(['+', '(', ')', '-', '_'], '', $data['phone']), 3); return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'phone' => ['required', 'integer', 'between:61000000,671999999', 'unique:users,phone'], 'username' => ['required', 'string', 'alpha_dash:ascii', 'max:255', 'unique:users,username'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } /** * Create a new user instance after a valid registration. * * @return \App\Models\User */ protected function create(array $data) { $user = User::create([ 'name' => $data['name'], 'phone' => $data['phone'], 'username' => $data['username'], 'password' => Hash::make($data['password']), 'active' => true, ]); return $user; } /** * Sms verification */ public function smsVerification() { return view('vendor.nova.pages.sms-verification'); } /** * Verify sms code */ public function verifySmsCode(Request $request) { $request->validate([ 'code' => ['required', 'integer', new PhoneCodeVerification()] ]); auth()->user()->update([ 'phone_verified_at' => now() ]); return redirect(Nova::path()); } }