getRecord(); $status = $record->status instanceof BaselineProfileStatus ? $record->status : (BaselineProfileStatus::tryFrom((string) $record->status) ?? BaselineProfileStatus::Draft); return $status->label(); } public function getSubHeadingBadgeColor(): string { $record = $this->getRecord(); $status = $record->status instanceof BaselineProfileStatus ? $record->status : (BaselineProfileStatus::tryFrom((string) $record->status) ?? BaselineProfileStatus::Draft); return $status->color(); } /** * @param array $data * @return array */ protected function mutateFormDataBeforeSave(array $data): array { $record = $this->getRecord(); $currentStatus = $record->status instanceof BaselineProfileStatus ? $record->status : (BaselineProfileStatus::tryFrom((string) $record->status) ?? BaselineProfileStatus::Draft); if ($currentStatus === BaselineProfileStatus::Archived) { unset($data['status']); } if (isset($data['scope_jsonb'])) { $data['scope_jsonb'] = BaselineScope::fromJsonb(is_array($data['scope_jsonb']) ? $data['scope_jsonb'] : null)->toJsonb(); } return $data; } protected function afterSave(): void { $record = $this->record; if (! $record instanceof BaselineProfile) { return; } BaselineProfileResource::audit($record, AuditActionId::BaselineProfileUpdated, [ 'baseline_profile_id' => (int) $record->getKey(), 'name' => (string) $record->name, 'status' => $record->status instanceof BaselineProfileStatus ? $record->status->value : (string) $record->status, ]); Notification::make() ->title('Baseline profile updated') ->success() ->send(); } protected function getRedirectUrl(): string { return $this->getResource()::getUrl('view', ['record' => $this->getRecord()]); } }