<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\User; use App\Models\Artist; use App\Providers\RouteServiceProvider; use Illuminate\Auth\Events\Registered; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Rules; use Illuminate\View\View; class RegisteredUserController extends Controller { /** * Display the registration view. */ public function create(): View { return view('auth.register'); } /** * Handle an incoming registration request. * * @throws \Illuminate\Validation\ValidationException */ public function store(Request $request): RedirectResponse { $request->validate([ 'name' => ['unique:artists,name', 'required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class], 'password' => ['required', 'confirmed', Rules\Password::defaults()], ]); $user = User::create([ 'name' => trim($request->name), 'email' => trim(strtolower($request->email)), 'password' => Hash::make($request->password), ]); $artist = Artist::create([ 'user_id' => $user->id, 'name' => trim($request->name), 'slug' => Str::slug(trim($request->name)), 'location' => 'No Agenda Nation', ]); event(new Registered($user)); Auth::login($user); return redirect(RouteServiceProvider::HOME); } }