'datetime', 'last_login_at' => 'datetime', 'email_authentication_at' => 'datetime', 'password' => 'hashed', 'is_active' => 'boolean', 'app_authentication_secret' => 'encrypted', 'app_authentication_recovery_codes' => 'encrypted:array', ]; } public function canAccessPanel(Panel $panel): bool { return $panel->getId() === 'central' && $this->is_active; } public function hasEmailAuthentication(): bool { return $this->email_authentication_at !== null; } public function toggleEmailAuthentication(bool $condition): void { $this->forceFill([ 'email_authentication_at' => $condition ? now() : null, ])->saveQuietly(); } public function getAppAuthenticationSecret(): ?string { return $this->app_authentication_secret; } public function saveAppAuthenticationSecret(?string $secret): void { $this->forceFill(['app_authentication_secret' => $secret])->saveQuietly(); } public function getAppAuthenticationHolderName(): string { return $this->email; } public function getAppAuthenticationRecoveryCodes(): ?array { return $this->app_authentication_recovery_codes; } public function saveAppAuthenticationRecoveryCodes(?array $codes): void { $this->forceFill(['app_authentication_recovery_codes' => $codes])->saveQuietly(); } }