Здесь вам не нужны две отдельные функции, отношения могут рекурсивно вызывать себя, поэтому сначала измените свои отношения на этот
public function children()
{
return $this->hasMany(Nested::class, 'parent_id')->with('children');
}
Затем для своего запроса вы можете просто сделать
Nested::where('parent_id', null)->with('children')->paginate();
Когда я построил модель вложенных комментариев, я также добавил область, чтобы сделать ее немного более читабельной
public function scopeTopLevel($query)
{
return $query->where('parent_id', null);
}
Так что теперь вызов в моем контроллере просто
Comment::topLevel()->with('children')->paginate()