仅返回集合中的某些数据 - Laravel

I'm learning Laravel and have created a public endpoint where I want to output only certain information of some comments if a user is not authenticated from a GET request.

I have managed to filter out the comments based on whether or not they are approved. I now want to filter out the data that is returned. I have attached a screenshot of what is currently returned.

enter image description here

Ideally, I only want to return the id, name and the body in the json. How can I go about this? I tried the pluck() method which did not give the desired results. Any pointers would be greatly appreciated

public function index(Request $request)
{
    if (Auth::guard('api')->check()) {

        return Comment::all();

    } else {

        $comments = Comment::where('approved', 1)->get();

        return $comments->pluck('id','name','body');

    }
}

To select the particular columns, you can pass columns name to get as

$comments = Comment::where('approved', 1) -> get(['id','name','body']); 

You can use a transformer to map the incoming data to a sensible output based on the auth state. The following example comes from the Fractal lib:

<?php
use Acme\Model\Book;
use League\Fractal;

$books = Book::all();

$resource = new Fractal\Resource\Collection($books, function(Book $book) {
    return [
        'id'      => (int) $book->id,
        'title'   => $book->title,
        'year'    => $book->yr,
        'author'  => [
            'name'  => $book->author_name,
            'email' => $book->author_email,
        ],
        'links'   => [
            [
                'rel' => 'self',
                'uri' => '/books/'.$book->id,
            ]
        ]
    ];
});

Ideally, you would create 2 classes that extend from Transformer and pass the correct one to the output.

If you want to pass the result as json respose

$comments = Comment::where('approved', 1)->pluck('id','name','body')->toArray();

return Response::json($comments);

If you want to pass the result as to blade

$comments = Comment::where('approved', 1)->pluck('id','name','body')->toArray();

return view('your_blade_name')->with('comments',$comments);