components([ Section::make('Benutzerkonto') ->icon('lucide-user') ->schema([ TextInput::make('name')->required(), TextInput::make('email')->email() ->required() ->label('E-Mail'), ]), Section::make('Sicherheit') ->icon('lucide-lock') ->schema([ TextInput::make('password') ->label('Passwort') ->password() // Masks the input ->required() ->revealable() ->rule(Password::min(8)->mixedCase()->numbers()->symbols()->uncompromised()) // Enforces strong password policies ->dehydrateStateUsing(fn ($state) => bcrypt($state)) // Hashes the password before saving ->label('Password'), TextInput::make('password_confirmation') ->password() // Masks the input ->required() ->same('password') // Validates that this matches the 'password' field ->label('Passwort Bestätigen'), ]), Select::make('roles') ->label('Rolle') ->visible(fn () => auth()->user()->hasRole('super_admin')) ->relationship('roles', 'name') ->multiple() ->preload() ->searchable(), ])->columns(1); } }