organisation_id === null) { $submission->organisation_id = $this->resolveOrganisationId($submission); } if ($submission->event_id === null) { $submission->event_id = $this->resolveEventId($submission); } } private function resolveOrganisationId(FormSubmission $submission): ?string { if ($submission->form_schema_id === null) { return null; } $schema = $submission->relationLoaded('schema') ? $submission->getRelation('schema') : \App\Models\FormBuilder\FormSchema::query() ->withoutGlobalScope(OrganisationScope::class) ->find($submission->form_schema_id); return $schema?->organisation_id; } private function resolveEventId(FormSubmission $submission): ?string { $schema = $submission->relationLoaded('schema') ? $submission->getRelation('schema') : \App\Models\FormBuilder\FormSchema::query() ->withoutGlobalScope(OrganisationScope::class) ->find($submission->form_schema_id); if ($schema !== null && $schema->owner_type === 'event' && $schema->owner_id !== null) { return (string) $schema->owner_id; } // Fall back to the active route — portal + organizer flows that // scope submissions by the current event via /events/{event}/... $route = request()?->route(); if ($route === null) { return null; } $eventParam = $route->parameter('event'); if ($eventParam instanceof Event) { return (string) $eventParam->id; } if (is_string($eventParam) && $eventParam !== '') { return $eventParam; } return null; } }