section_level_submit) { return PublishGuardResult::passed($this->code()); } $sections = $schema->sections; if ($sections->isEmpty()) { return PublishGuardResult::passed($this->code()); } /** @var FormSchemaSection $first */ $first = $sections->sortBy('sort_order')->first(); $firstSectionId = (string) $first->id; /** @var FormField $field */ foreach ($schema->fields as $field) { $hasIdentityKey = false; /** @var FormFieldBinding $binding */ foreach ($field->bindings as $binding) { if ((bool) $binding->is_identity_key) { $hasIdentityKey = true; break; } } if (! $hasIdentityKey) { continue; } if ((string) $field->form_schema_section_id !== $firstSectionId) { return PublishGuardResult::failed( guardCode: $this->code(), messageKey: 'form_builder_publish_guards.identity_key_bindings_only_in_first_section', offendingFormFieldId: (string) $field->id, ); } } return PublishGuardResult::passed($this->code()); } }