Calcular idade a partir da data armazenada no banco de dados em Y-m-d usando o Laravel 5.2

Oi Usuário adicionar seu DOB através do formulário que armazenam no banco de dados,

Gostaria de calcular a idade a partir da data armazenada no banco de dados que está neste formato Y-m-d,

Minha pergunta é :

Como calcular a idade?

Onde colocar a lógica, no controlador ou no modelo?

Como passar a Data armazenada em exibição neste formato 'm-d-Y'

Como passar o resultado da lógica que é a idade em vista.

Estou usando algo como abaixo no meu modelo, está certo?

Este é o controlador:

public function index()   {   
    $profile   = User::find($this->userid())->profiledetailsHasOne;  //This has Dob field                   
    return view('profile.index',['profile' => $profile ]); 
}

Este é o meu modelo:

public function getAge(){
    $this->birthdate->diff($this->attributes['dob'])
    ->format('%y years, %m months and %d days');
}

Esta é a minha visão:

<tr>
    <th>Age</th>
    <td>{{$profile->getAge()}}</td>
</tr>

Isto está certo? Estou recebendo erro como abaixo

Call to a member function diff() on null

questionAnswers(5)

yourAnswerToTheQuestion