Você poderia usar a tarefa de administração em massa neste caso?
Embora eu tenha acabado de testar seu segundo código e ele funcionou para mim em meu usuário de teste (email: test_thirteen@here.invalid, era TL1 e agora é 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