$violations */ public function __construct( public readonly string $purposeSlug, public readonly array $violations, ) { $codes = array_map(static fn (PublishGuardResult $v): string => $v->guardCode, $violations); parent::__construct( "Schema publish blocked for purpose '{$purposeSlug}': " . implode(', ', $codes), ); } public function render(Request $request): JsonResponse { return response()->json([ 'error' => 'publish_blocked', 'message' => 'Schema kan niet gepubliceerd worden — er zijn problemen.', 'purpose_slug' => $this->purposeSlug, 'violations' => array_map( static fn (PublishGuardResult $v): array => [ 'code' => $v->guardCode, 'message_key' => $v->messageKey, 'form_field_id' => $v->offendingFormFieldId, 'context' => $v->context, ], $this->violations, ), ], 422); } }