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

Serafimka4's avatar

Can't set model as property if it hasn't been persisted yet Livewire v.3

Hello everyone, after switching to livewire v.3, such an error appeared.

Error - The model cannot be set as a property if it has not been saved yet

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Role
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next, ...$roles)
    {

        $user = $request->user();

        if($user->role_id == 5){
            return $next($request);
        }


        foreach($roles as $role) {

            if($user->role_id == $role)
                return $next($request);
        }

        return redirect()->route('my-leads');
    }
}

The error is in this place

return $next($request);
0 likes
1 reply
Snapey's avatar

its not this. This is middleware not livewire

Show your livewire component

Please or to participate in this conversation.