morphTo(); } public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function article(): BelongsTo { return $this->belongsTo(Article::class, 'categorizable_id'); } public function scopeByCategory($query, $category_id) { return $query->where($this->table.'.category_id', $category_id); } public function scopeByCategories($query, $categories_id) { return $query->whereIn($this->table.'.category_id', $categories_id); } public function scopeByCategoryParent($query, $category_id) { $category = Category::find($category_id); return $query->whereHas('category', function ($query) use ($category) { return $query->inRange($category->_lft, $category->_rgt); }); } }