use(WithFaker::class); test('assigns default roles', function (): void { Event::fakeExcept(Verified::class); Collection::times(fake()->randomDigitNotNull(), function (): void { Role::findOrCreate(Str::random()); }); $defaultRoleCount = fake()->randomDigitNotNull(); Collection::times($defaultRoleCount, function (): void { /** @var Role $role */ $role = Role::findOrCreate(Str::random()); $role->default = true; $role->save(); }); App::make(PermissionRegistrar::class)->forgetCachedPermissions(); $user = User::factory()->createOne([ User::ATTRIBUTE_EMAIL_VERIFIED_AT => null, ]); $url = URL::temporarySignedRoute( 'verification.verify', now()->addMinutes(60), [ 'id' => $user->getKey(), 'hash' => sha1($user->email), ] ); actingAs($user)->get($url); expect($user->roles()->get())->toHaveCount($defaultRoleCount); });