Когда вы делаете
$post = Posts::where('slug', $slug)->get();
переменная $ post содержит объект Collection , а не объект Post - вот почему comments () метод недоступен.Вы можете вызывать этот метод только для одного сообщения - изменив get () на first () , вы получите одно сообщение, которое соответствует slug , а затем выдолжен быть в состоянии получить свои комментарии:
$post = Posts::where('slug', $slug)->first();
$comments = $post->comments()->whereIsActive(1)->get();