update e create sao duas coisas diferentes. onde é que podem entrar em conflito?

e dizer que isto tem demasiadas responsabilidades acho que era um bocado parvo, porque o que eu fiz foi extrair isto tudo do service do Omniauth, e acrescentar o método para enviar email
por isso no global passou-se de um serviço muito grande para dois mais pequenos