¿Cómo cargar Laravel con modelos anidados y limitar los modelos anidados?

Hola chicos, estoy usando Laravel 5.6 Tengo tres tablas en la base de datos de publicaciones, comentarios y respuestas y tres modelos Publicar, Comentar, Responder

las relaciones son las siguientes: una publicación tiene muchos comentarios y un comentario tiene muchas respuestas. Creé una ruta que cuando se golpea devolverá algunos datos; sin embargo, quiero que estos datos sean de una manera específica, lea este ejemplo:

Digamos que tengo 6 publicaciones en mi base de datos y cada publicación tiene 6 comentarios y cada comentario tiene 6 respuestas. Quiero devolver solo las primeras 3 publicaciones junto con los primeros 3 comentarios para cada publicación y las primeras 3 respuestas para cada comentario

//this is a function inside a controller 
//and for sure I have make sure to make use of the models namespaces 

public function test(){
    $posts = Post::with(['comments' => function($data){
        return $data->take(3);
    },
    'comments.replies' => function($data){
        return $data->take(3);
    }])->paginate(3);

    //returning the posts
    return $posts
}

De esta manera funciona, devuelve las primeras 3 publicaciones y devuelve los primeros 3 comentarios y las primeras 3 respuestas solo para la primera publicación, pero para otras publicaciones solo obtengo una clave vacía de comentarios, por lo que no hay respuestas como resultado

espero que recibas mi pregunta, por favor ayuda perdón por la gran pregunta Gracias de antemano.

Respuestas a la pregunta(1)

Su respuesta a la pregunta