'boolean', ]; protected static function boot() { parent::boot(); static::creating(function ($category) { if (empty($category->slug)) { $category->slug = Str::slug($category->name); } }); } public function posts(): HasMany { return $this->hasMany(Post::class); } public function publishedPosts(): HasMany { return $this->hasMany(Post::class) ->where('status', 'published') ->where('published_at', '<=', now()); } public function scopeActive($query) { return $query->where('is_active', true); } public function scopeOrdered($query) { return $query->orderBy('sort_order')->orderBy('name'); } }