为什么Laravel的Response :: json如果从另一个函数调用则返回空白?

I'm building an API using Laravel. I'd like to pass data to a function in the base controller and have the JSON served out via Response::json() from there (the reason for this is so that the response method carries out benchmarking and logging, among other things)

This works:

<?php

public function show($id)
{
    $data = Member::find($id);

    return Response::json($data);
}

This doesn't:

<?php

public function show($id)
{
    $data = Member::find($id);

    $this->respond($data);
}

private function respond($data)
{
    return Response::json($data);
}

Can anyone tell me why Response:json() doesn't like being popped into another function?

If I echo Response::json($data) instead of return it outputs the full response, including the headers.

All input appreciated. Thanks.

As cecilozaur commented, perhaps you need to:

return $this->respond($data);

So that the response actually gets returned to the parent function.