Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

noblemfd's avatar

local.ERROR: LogicException: App\Models\User::token must return a relationship instance, but "null" was returned

In Laravel-8, I am creating an end point for ForgotPassword and to also send notification to the user email:

public function forgotPassword(ResetPasswordRequest $request)
{
try {
    $user = User::where('email', $request->email)->first();
    if (!$user){
        return $this->error('We can\'t find a user with that e-mail address.', 400);
    }
    $email  =   $request->email;
    $token  =   Str::random(10);

    $passwordReset = PasswordReset::updateOrCreate(
        ['email' => $user->email],
        [
            'email'         =>  $email,
            'token'         =>  $token,
            'created_at'    =>  now()->addHours(10),
         ]
    );

    // Send Email Based on condition
    if ($user && $passwordReset){
        $user->notify(
            new PasswordResetRequest($token)
        );
    }
    return $this->success('We have e-mailed your password reset link!', [
        'user'          => $user,
    ]);
    } catch(\Exception $e) {
        Log::error($e);
        return $this->error($e->getMessage(), $e->getCode());
    }
}

As I submit, I got this error:

local.ERROR: LogicException: App\Models\User::token must return a relationship instance, but "null" was returned

When I removed:

    if ($user && $passwordReset){
        $user->notify(
            new PasswordResetRequest($token)
        );
    }

No error, and it was also inserted into the password_resets table. but I need to send notification.

How do I get this resolved?

Thanks

0 likes
0 replies

Please or to participate in this conversation.