Calcular la edad desde la fecha almacenada en la base de datos en Y-m-d usando Laravel 5.2

Hola usuario agrega su DOB a través del formulario que se almacena en la base de datos,

Me gustaría calcular la edad a partir de la fecha almacenada en la base de datos que está en este formato Y-m-d,

Mi pregunta es :

¿Cómo calcular la edad?

¿Dónde poner la lógica, en controlador o modelo?

Cómo pasar la Fecha almacenada a la vista en este formato 'm-d-Y'

Cómo pasar el resultado de la lógica que es la edad a la vista.

Estoy usando algo como a continuación en mi modelo, ¿es esto correcto?

Este es el controlador:

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

Este es mi modelo:

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

Esta es mi opinión:

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

¿Es esto correcto? Recibo un error como el siguiente

Call to a member function diff() on null