Call to undefined method Illuminate\Database\Query\Builder::post()
<p>I have a problem with using the query builders that give me the undefined method error for using <code>post()</code> in the routes file.</p>

<p>Usually I use the return of </p>

<pre><code>User::find($id)-&gt;post; 
</code></pre>

<p>but when I call <code>post</code> as a function, it doesn't work and gives me:</p>

<blockquote>
  <p>Call to undefined method Illuminate\Database\Query\Builder::post()</p>
</blockquote>

<p><strong>User Model</strong></p>

<pre><code>&lt;?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{


  protected $fillable = [
    'name', 'email', 'password',
 ];

 protected $hidden = [
     'password', 'remember_token',
 ];


 protected function post()
 {       
     return $this-&gt;hasOne('App\Post');  
 }

 }
</code></pre>

<p><strong>Routes</strong>
      

<pre><code>  Route::get('/', function () {
  return view('welcome');
  });



  Route::get('/user/{id}/post',function($id){

  return User::find($id)-&gt;post()-&gt;get();    

  });
</code></pre>