Try this
Auth::guard('web')->login($user->first());
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello developers, please can you help me with that problem
I have a laravel project that I want to verify the user's phone number by twillio and I used their documentation , while I want to sign up it gets me this error Call to a member function roles() on null I am using Listeners for a registered user to assign a role for them and this error is in this Listener these are my codes thanks Note: the verification code delivers successfully
controller -> auth -> RegisterController.php
protected function create(array $data)
{
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio_sid = getenv("TWILIO_SID");
$twilio_verify_sid = getenv("TWILIO_VERIFY_SID");
$twilio = new Client($twilio_sid, $token);
$twilio->verify->v2->services($twilio_verify_sid)
->verifications
->create($data['phone_number'], "sms");
User::create([
'name' => $data['name'],
'phone_number' => $data['phone_number'],
'password' => Hash::make($data['password']),
]);
}
protected function verify(Request $request)
{
$data = $request->validate([
'verification_code' => ['required', 'numeric'],
'phone_number' => ['required', 'string'],
]);
/* Get credentials from .env */
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio_sid = getenv("TWILIO_SID");
$twilio_verify_sid = getenv("TWILIO_VERIFY_SID");
$twilio = new Client($twilio_sid, $token);
$verification = $twilio->verify->v2->services($twilio_verify_sid)
->verificationChecks
->create($data['verification_code'], array('to' => $data['phone_number']));
if ($verification->valid) {
$user = tap(User::where('phone_number', $data['phone_number']))->update(['isVerified' => true]);
/* Authenticate user */
Auth::login($user->first());
return redirect()->route('home')->with(['message' => 'Phone number verified']);
}
return back()->with(['phone_number' => $data['phone_number'], 'error' => 'Invalid verification code entered!']);
}
vendor/laravel/ui/auth-backend/RegistersUsers.php
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
if ($response = $this->registered($request, $user)) {
return $response;
}
return $request->wantsJson()
? new JsonResponse([], 201)
: redirect()->route('verify')->with(['phone_number' => $request->phone_number]);
}
app/Listeners/AssignRoleForRegisteredUser.php
class AssignRoleForRegisteredUser
{
protected $defaultRole;
protected $user;
/**
* Create the event listener.
*/
public function __construct()
{
$this->defaultRole = config('project.registered_user_role');
}
/**
* Handle the event.
*
* @param object $event
*/
public function handle(Registered $event)
{
$this->user = $event->user;
if (!$this->hasRole($this->defaultRole)) {
$this->attachRole($this->defaultRole);
}
}
protected function hasRole(string $name)
{
return $this->user->roles()->where('title', $name)->exists();
}
protected function attachRole(string $name)
{
if ($role = Role::where('title', $name)->first()) {
$this->user->roles()->attach($role);
}
}
}
Thanks Alot
Please or to participate in this conversation.