Use UserAuthInterface->authenticate() instead of loading by username with UserStorageInterface->loadByProperties() so that email login can be used.