'array', 'is_visible' => 'boolean', ]; } public function preregistrationPage(): BelongsTo { return $this->belongsTo(PreregistrationPage::class); } /** * Blade dynamic component name (kebab-case where needed). */ public function bladeComponentName(): string { return match ($this->type) { 'social_proof' => 'blocks.social-proof', 'cta_banner' => 'blocks.cta-banner', default => 'blocks.'.$this->type, }; } }