*/ protected $fillable = [ 'title', 'description', 'is_visible', ]; /** * @var array */ public $translatable = ['title', 'description']; /** * Media collections */ public function registerMediaCollections(): void { $this->addMediaCollection('main') ->singleFile(); } /** * Media conversations */ public function registerMediaConversions(?Media $media = null): void { $this->addMediaConversion('thumb') ->width(470) ->height(345) ->fit(Manipulations::FIT_CONTAIN, 470, 345); } /** * Thumbnail url */ public function thumbnail(): string { return $this->getFirstMediaUrl('main', 'thumb'); } /** * Scope for visable galleries * * @param Builder $query */ public function scopeEnabled($query): void { $query->where('is_visible', true); } }