*/ public function toArray(Request $request): array { /** @var FormSubmission|null $submission */ $submission = $this->submission; /** @var Organisation|null $organisation */ $organisation = $submission?->organisation; /** @var FormSchema|null $schema */ $schema = $submission?->schema; return [ 'id' => $this->id, 'form_submission_id' => $this->form_submission_id, 'binding_id' => $this->binding_id, 'listener_class' => $this->listener_class, 'failed_at' => $this->failed_at->toIso8601String(), 'exception_class' => $this->exception_class, 'exception_message' => $this->exception_message, 'exception_trace' => $this->exception_trace, 'context' => $this->context, 'retry_count' => $this->retry_count, 'resolved_at' => $this->resolved_at?->toIso8601String(), 'resolved_by_user_id' => $this->resolved_by_user_id, 'resolved_by_user_name' => $this->resolvedBy?->name, 'resolved_note' => $this->resolved_note, 'dismissed_at' => $this->dismissed_at?->toIso8601String(), 'dismissed_by_user_id' => $this->dismissed_by_user_id, 'dismissed_by_user_name' => $this->dismissedBy?->name, 'dismissed_reason_type' => $this->dismissed_reason_type?->value, 'dismissed_reason_note' => $this->dismissed_reason_note, 'state' => match (true) { $this->resolved_at !== null => 'resolved', $this->dismissed_at !== null => 'dismissed', default => 'open', }, 'organisation_id' => $organisation?->id, 'organisation_name' => $organisation?->name, 'form_schema_id' => $schema?->id, 'form_schema_label' => $schema?->name, 'retry_history' => FormSubmissionActionFailureRetryAttemptResource::collection( $this->whenLoaded('retryAttempts'), ), ]; } }