|RadioBanner where($column, $operator = null, $value = null) * @method static \Illuminate\Database\Eloquent\Builder|RadioBanner create($attributes = []) */ class RadioBanner extends Model { #[\Override] protected $table = 'radio_banners'; #[\Override] protected $guarded = ['id', 'created_at', 'updated_at', 'image', 'url']; /** @var array */ #[\Override] protected $casts = [ 'is_active' => 'boolean', ]; public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } public function scopeActive($query) { return $query->where('is_active', true); } public function scopeOrdered($query) { return $query->orderBy('sort_order'); } public function getImageUrlAttribute(): string { return Storage::url($this->image_path); } #[\Override] protected static function boot(): void { parent::boot(); static::deleting(function ($banner) { if ($banner->image_path && Storage::exists($banner->image_path)) { Storage::delete($banner->image_path); } }); } }