$scope_items * @property string $cta_label * @property string|null $compare_heading * @property string|null $compare_summary * @property string|null $eyebrow * @property string|null $title_line * @property string|null $title_emphasis * @property string|null $hero_lead * @property string|null $hero_image_path * @property string|null $hero_image_alt * @property list|null $benefits * @property list|null $included_items * @property string|null $audience_heading * @property string|null $audience_intro * @property list|null $audience_points * @property string|null $audience_image_path * @property string|null $audience_image_alt * @property string|null $final_cta_heading * @property string|null $final_cta_body * @property string|null $meta_title * @property string|null $meta_description * @property int $sort_order * @property Carbon|null $published_at */ #[Fillable([ 'name', 'slug', 'level', 'tag', 'subtitle', 'summary', 'scope_items', 'cta_label', 'compare_heading', 'compare_summary', 'sort_order', 'published_at', 'eyebrow', 'title_line', 'title_emphasis', 'hero_lead', 'hero_image_path', 'hero_image_alt', 'benefits', 'included_items', 'audience_heading', 'audience_intro', 'audience_points', 'audience_image_path', 'audience_image_alt', 'final_cta_heading', 'final_cta_body', 'meta_title', 'meta_description', ])] #[UsePolicy(WeddingPackagePolicy::class)] class WeddingPackage extends Model { /** @use HasFactory */ use HasFactory; use HasPublication; protected static function booted(): void { static::saving(function (WeddingPackage $weddingPackage): void { if (blank($weddingPackage->slug) && filled($weddingPackage->name)) { $weddingPackage->slug = Str::slug($weddingPackage->name); } }); } /** @return array */ protected function casts(): array { return [ 'scope_items' => 'array', 'benefits' => 'array', 'included_items' => 'array', 'audience_points' => 'array', 'sort_order' => 'integer', 'published_at' => 'datetime', ]; } }