create(); $asset = Asset::factory()->assignedToUser($user)->create(); $asset->model->category->update(['checkin_email' => true]); $this->fireCheckInEvent($asset, $user); Mail::assertSent(CheckinAssetMail::class, function($mail) use ($user) { return $mail->hasTo($user->email); }); } public function testCheckInEmailNotSentToUserIfSettingDisabled() { Mail::fake(); $user = User::factory()->create(); $asset = Asset::factory()->assignedToUser($user)->create(); $asset->model->category->update([ 'checkin_email' => false, 'eula_text' => null, 'require_acceptance' => false, ]); $this->fireCheckInEvent($asset, $user); Mail::assertNotSent(CheckinAssetMail::class, function($mail) use ($user) { return $mail->hasTo($user->email); } ); } private function fireCheckInEvent($asset, $user): void { event(new CheckoutableCheckedIn( $asset, $user, User::factory()->checkinAssets()->create(), '' )); } }