unverified()->create(); $action = new VerifyUserEmail(); $result = $action->execute($user); expect($result)->toBeTrue() ->and($user->fresh()->hasVerifiedEmail())->toBeTrue(); Event::assertDispatched(Verified::class); Event::assertDispatched(UserEmailWasVerified::class); }); test('it returns false if email is already verified', function () { Event::fake(); $user = User::factory()->create([ 'email_verified_at' => now(), ]); $action = new VerifyUserEmail(); $result = $action->execute($user); expect($result)->toBeFalse(); Event::assertNotDispatched(Verified::class); Event::assertNotDispatched(UserEmailWasVerified::class); });