two_factor_secret && (new Google2FA())->verifyKey($user->two_factor_secret, $code)) { return true; } $recoveryCodes = $user->two_factor_recovery_codes ?? []; $normalized = strtoupper(trim($code)); if (in_array($normalized, $recoveryCodes, true)) { $user->forceFill([ 'two_factor_recovery_codes' => array_values(array_diff($recoveryCodes, [$normalized])), ])->save(); return true; } return false; } }