comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); Artisan::command('admin:create', function () { $name = text('Name', required: true); $email = text( 'Email', required: true, validate: fn (string $value) => match (true) { ! filter_var($value, FILTER_VALIDATE_EMAIL) => 'Enter a valid email address.', User::where('email', $value)->exists() => 'A user with this email already exists.', default => null, }, ); $password = password('Password', required: true, validate: fn (string $value) => strlen($value) < 8 ? 'The password must be at least 8 characters.' : null); $user = User::create([ 'name' => $name, 'email' => $email, 'role' => UserRole::Admin, 'password' => $password, ]); $user->forceFill(['email_verified_at' => now()])->save(); $this->info("Admin user {$email} created."); })->purpose('Create an admin user (public registration is disabled)');