title: Laravel 5 Auth: User must implement CanResetPassword interface
body: <p>I've successfully implemented Laravel's Auth for Registration, Login and Logout. However, I'm having quite a bit of difficulty resolving the following error trying to implement the password reset functionality.</p>
  
  <pre><code>Error: User must implement CanResetPassword interface.
  </code></pre>
  
  <p>I believe my User class is configured properly:</p>
  
  <pre><code>use Illuminate\Auth\Authenticatable;
  use Illuminate\Database\Eloquent\Model;
  use Illuminate\Auth\Passwords\CanResetPassword;
  use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
  use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
  
  class User extends Model implements AuthenticatableContract, 
                                      CanResetPasswordContract {
      use Authenticatable, CanResetPassword;
      ...
  }
  </code></pre>
  
  <p>I'm not using Eloquent, so I have the following in config/auth.php:</p>
  
  <pre><code>'driver' =&gt; 'database'
  </code></pre>
  
  <p>Does anyone have any idea why I'm getting the "User must implement CanResetPassword interface" error?</p>
  
  <p>Thanks much!</p>
  
  <p>EDIT: Adding Stack Trace:</p>
  
  <pre><code>UnexpectedValueException in PasswordBroker.php line 237: 
  User must implement CanResetPassword interface .
  
  in PasswordBroker.php line 237
  at PasswordBroker-&gt;getUser( array('email' =&gt; 'admin2@beaudini.com')) in PasswordBroker.php line 81
  at PasswordBroker-&gt;sendResetLink (array('email' =&gt; 'admin2@beaudini.com'), object(Closure)) in Facade .php line 217
  at Facade::__callStatic('sendResetLink' , array(array('email' =&gt; 'admin2@beaudini.com'), object(Closure))) in ResetsPasswords.php line 35
  at Password::sendResetLink(array ('email' =&gt; 'admin2@beaudini.com'), object(Closure)) in ResetsPasswords .php line 35
  at PasswordController-&gt;postEmail (object(Request))
  at call_user_func_array(array(object(PasswordController), 'postEmail'), array( object(Request))) in Controller.php line 256
  at Controller-&gt;callAction('postEmail', array(object(Request))) in ControllerDispatcher .php line 164
  at ControllerDispatcher-&gt;call (object(PasswordController), object(Route), 'postEmail') in ControllerDispatcher .php line 112
  at ControllerDispatcher-&gt;Illuminate \Routing\{closure}(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in RedirectIfAuthenticated.php line 41
  at RedirectIfAuthenticated-&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(RedirectIfAuthenticated), 'handle'), array (object(Request), object(Closure))) in Pipeline.php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
  at Pipeline-&gt;then(object(Closure)) in ControllerDispatcher.php line 114
  at ControllerDispatcher-&gt;callWithinStack (object(PasswordController), object(Route), object(Request), 'postEmail') in ControllerDispatcher.php line 69
  at ControllerDispatcher-&gt;dispatch (object(Route), object(Request), 'App\Http\Controllers\Auth\PasswordController', 'postEmail') in Route.php line 203
  at Route-&gt;runWithCustomDispatcher(object (Request)) in Route.php line 134
  at Route-&gt;run(object(Request)) in Router.php line 704
  at Router-&gt;Illuminate\Routing\{closure}(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
  at Pipeline-&gt;then(object(Closure)) in Router.php line 706
  at Router-&gt;runRouteWithinStack(object&lt; /em&gt;(Route), object(Request)) in Router.php line 671
  at Router-&gt;dispatchToRoute(object (Request)) in Router.php line 631
  at Router-&gt;dispatch(object(Request)) in Kernel.php line 236
  at Kernel-&gt;Illuminate\Foundation\Http \{closure}(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in Debugbar.php line 49
  at Debugbar-&gt;handle(object (Request), object(Closure ))
  at call_user_func_array(array(object(Debugbar), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in VerifyCsrfToken.php line 50
  at VerifyCsrfToken-&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object (Request), object(Closure ))) in Pipeline .php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in ShareErrorsFromSession .php line 49
  at ShareErrorsFromSession -&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in StartSession.php line 62&lt; /a&gt;
  at StartSession-&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline .php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in AddQueuedCookiesToResponse .php line 37
  at AddQueuedCookiesToResponse -&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array (object(Request), object(Closure))) in Pipeline.php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in EncryptCookies.php line 59
  at EncryptCookies-&gt;handle (object(Request), object(Closure))
  at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline .php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request)) in CheckForMaintenanceMode .php line 42
  at CheckForMaintenanceMode -&gt;handle(object(Request), object(Closure))
  at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
  at Pipeline-&gt;Illuminate\Pipeline\{closure }(object(Request))
  at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
  at Pipeline-&gt;then(object(Closure)) in Kernel.php line 122
  at Kernel-&gt;sendRequestThroughRouter (object(Request)) in Kernel.php line 87
  at Kernel-&gt;handle(object( Request)) in index.php line 54
  </code></pre>