### What?
When `?locale=` is present in an admin panel URL and that admin panel
URL is visited in an unauthenticated browser, a runtime error is thrown.
### Why?
`upsertPreferences` relies on `req.user` to successfully create a new
`payload-preferences` document. When an unauthenticated user visits a
URL with a `locale` parameter, `upsertPreferences` is called but
`req.user` is not available.
### How?
Prevent `upsertPreferences` from being called when `req.user` is not
available.
Fixes#13581
Co-authored-by: Patrik Kozak <35232443+PatrikKozak@users.noreply.github.com>