$input */ public function create(array $input): User { Validator::make($input, [ ...$this->profileRules(), 'password' => $this->passwordRules(), 'company_name' => ['nullable', 'string', 'max:255'], ])->validate(); return DB::transaction(function () use ($input): User { $companyName = $input['company_name'] ?? ($input['name'] . ' Company'); $company = Company::create([ 'name' => $companyName, 'slug' => Str::slug($companyName . '-' . Str::random(6)), 'status' => 'active', 'timezone' => 'Europe/London', ]); return User::create([ 'company_id' => $company->id, 'name' => $input['name'], 'email' => $input['email'], 'password' => $input['password'], 'is_company_admin' => true, 'status' => 'active', ]); }); } }