validate([ 'username' => 'required|unique:users|unique:tenants,url|regex:/^[a-z0-9]{8,30}$/i', 'email' => 'required|unique:users|email:rfc,dns', 'password' => 'required|min:8|confirmed', ]); $user = new User(); $user->password = Hash::make($validated["password"]); $user->username = $validated["username"]; $user->email = $validated["email"]; $user->saveOrFail(); $tenant = new Tenant(); $tenant->name = $validated["username"]; $tenant->url = $validated["username"]; $tenant->template = "default"; $tenant->owner = $user->id; $tenant->saveOrFail(); return redirect("/login"); } public function loginView() { return view("account.login"); } public function login(Request $request) { $credentials = $request->only('username', 'password'); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect("/d"); } return back()->withErrors([ 'username' => 'The provided credentials do not match our records.', ]); } }