Potresti usare il task di amministrazione di massa in questo caso?
Anche se ho appena testato il tuo secondo codice e ha funzionato per me sul mio utente di test (email: test_thirteen@here.invalid, era TL1 e ora è TL0).
User.where(trust_level: 1).each do |u|
if u.primary_email&.email.end_with?(".invalid")
u.change_trust_level!(TrustLevel[0])
end
end