components([ TextInput::make('name') ->label('Nama') ->placeholder('John Doe') ->autocomplete(false) ->autofocus() ->required() ->maxLength(100), TextInput::make('email') ->label('Alamat Surel') ->placeholder('johndoe@example.com') ->autocomplete(false) ->required() ->maxLength(254) ->unique('users', 'email') ->email(), TextInput::make('username') ->label('Nama Pengguna') ->placeholder('johndoe') ->autocomplete(false) ->required() ->minLength(5) ->maxLength(20) ->regex('/^[a-zA-Z0-9_.-]+$/') ->unique('users', 'username'), TextInput::make('password') ->label('Kata Sandi') ->password() ->revealable(filament()->arePasswordsRevealable()) ->required() ->rule(Password::default()) ->autocomplete(false) ->dehydrated(fn ($state): bool => filled($state)) ->dehydrateStateUsing(fn ($state): string => Hash::make($state)) ->placeholder('********'), ]); } protected function handleRegistration(array $data): Model { $user = $this->getUserModel()::create($data); $user->assignRole('Perusahaan'); return $user; } }