This doesn't look consistent with how the `EventCreatorService` worked, though I can appreciate it will be difficult to use the same strategy as `EventCreatorService`. Could we try passing an id of sorts back to the success callback? for example:

~~~ruby
AuthenticationCreatorService.new(...).perform ... , success: ->(auth, action) do
case action
when :login_with_auth
  ...
when :add_new_auth
  ...
when :register_with_auth
  ...
end
end,
failure: ->() do
  ...
end
~~~ 

...or we could keep the conditionals in the controller and use three separate services:

~~~ruby
if authentication.present?
  LoginService.new ...
elsif current_user
  CreateNewAuthService.new ...
else
  RegisterWithAuthService.new ...
end
~~~

hopefully we can find a good solution to this problem!