TurgutEfeYksel Kategori ile ilgili olarak şu paketi kullanabilirsiniz: https://github.com/BlueM/Tree
// Önce tüm kategorileri çekeceksiniz
$data = Category::select('id', 'parentId')
->get()
->toArray();
$tree = new BlueM\Tree($data, [
'rootId' => null,
'id' => 'id',
'parent' => 'parentId'
]);
// Burada listeleme yapacağınız kategoriyi seçiyorsunuz, mesela id'si 5 olan kategori
$category = $tree->getNodeById(5);
// Bu seçtiğiniz kategori ve altında yer alan tüm kategori id'lerini recursive toplayan dizi olacak
$ids = [];
foreach($category->getDescendantsAndSelf() as $node) {
$ids[] = $node->getId();
}
// Artık elinizde [5, 8, 13, 24] gibi kategoriyi ve tüm alt kategori id'lerini barındıran bir dizi var
// Bununla kategorisi olan modelleri çekebilirsiniz. Mesela:
$products = Product::whereIn('category_id', $ids)
->paginate();
Dokümanlara bakarak yazdım, hatalı yer olabilir.