hostUpdateService = $hostUpdateService; } /** @return array */ protected function getDefaultHeaderActions(): array { return [ DeleteAction::make() ->tooltip(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), Action::make('save') ->hiddenLabel() ->action('save') ->keyBindings(['mod+s']) ->tooltip(trans('filament-panels::resources/pages/edit-record.form.actions.save.label')) ->icon(TablerIcon::DeviceFloppy), ]; } protected function getFormActions(): array { 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(TablerIcon::Database) ->danger() ->send(); throw new Halt(); } } }