подкатегорий в одной таблице с глубокой вложенностью через perent_id. В моделе соответственно связи:
                      
                      
                          public function child()
                      
                      
                          {
                      
                      
                              return $this->hasMany(self::class, 'parent_id');
                      
                      
                          }
                      
                      
                          public function parent()
                      
                      
                          {
                      
                      
                              return $this->belongsTo(self::class, 'parent_id');
                      
                      
                          }
                      
                      
                      
                      
                      
                      У последней подкатегории есть опции (активные не активные)
                      
                      
                      
                      
                      
                      Как при получении самой первой категории в списке отфильтровать первую вложенность подкатегорий по активным опциям в последних категория дерева.
                      
                      
                      
                      
                      
                      Пример на рисунке: $category = Category::whereId(1)->with('subcategories', function ($query) {
                      
                      
                         $query-> ??? ->whereHas('options' ....)
                      
                      
                      })
                      
                      
                      
                      
                      
                      Те в итоге нужно получить категорию ID 1 c с подкатегорией ID3 как реляцию и так далее, при запросе ID3 получить с реляцией ID6
                      
                      
                    
категорий обычно не так много, я тупо загружаю все в память и сам фильтрую что нужно
Есть замечательная статья про работу с данными с иерархией. Может чем то поможет http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
ltree будет лучшим решением уверен)
Обсуждают сегодня