hostUpdateService = $hostUpdateService; } protected function getHeaderActions(): array { return [ DeleteAction::make() ->label(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0 ? trans('admin/databasehost.delete_help') : trans('filament-actions::delete.single.modal.actions.delete.label')) ->disabled(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0), $this->getSaveFormAction()->formId('form'), ]; } protected function getFormActions(): array { return []; } public function getRelationManagers(): array { if (DatabasesRelationManager::canViewForRecord($this->getRecord(), static::class)) { return [ DatabasesRelationManager::class, ]; } return []; } protected function handleRecordUpdate(Model $record, array $data): Model { if (!$record instanceof DatabaseHost) { return $record; } try { return $this->hostUpdateService->handle($record, $data); } catch (PDOException $exception) { Notification::make() ->title(trans('admin/databasehost.error')) ->body($exception->getMessage()) ->color('danger') ->icon('tabler-database') ->danger() ->send(); throw new Halt(); } } }