label(__('music_productions.save')) ->action('save') ->keyBindings(['mod+s']) ->color('primary') ->size('sm'), Action::make('cancel') ->label(__('music_productions.cancel')) ->url($this->getResource()::getUrl('index')) ->color('gray') ->size('sm'), DeleteAction::make() ->label(__('music_productions.delete')) ->size('sm'), RestoreAction::make() ->label(__('music_productions.restore')) ->size('sm'), ForceDeleteAction::make() ->label(__('music_productions.force_delete')) ->size('sm'), ]; } protected function getFormActions(): array { return []; // Hide standard bottom save/cancel buttons } protected function getRedirectUrl(): string { return $this->getResource()::getUrl('index'); } protected function getSavedNotificationTitle(): ?string { return __('music_productions.updated_successfully'); } protected function mutateFormDataBeforeFill(array $data): array { // Load existing translations $translationData = TranslationTabs::fillFromRecord($this->record); \Log::info('Loading translations for music production edit', [ 'production_id' => $this->record->id, 'translations' => $translationData ]); return array_merge($data, $translationData); } protected function afterSave(): void { \Log::info('Saving music production translations', [ 'production_id' => $this->record->id, 'form_state' => $this->form->getState() ]); // Save translations TranslationTabs::saveTranslations($this->record, $this->form->getState()); } }