I recently migrated a model from one controller to another on the same cloud by following the instructions on https://docs.jujucharms.com/2.4/en/models-migrate. The source controller (and model) were on 2.4.7 and the target controller was on 2.5-rc1.
The migration itself worked fine, but we manage the model from a separate environment from where the controller is managed from, and use different users for each model. This user was not migrated across as part of this migration. I confirmed this by running "juju users" on the target controller after the migration.
I worked around this by manually recreating the user on the target controller and then updating the management environment to point to the new model and use the newly created user.
Unfortunately as different controllers could have differnet user backends/etc it's not in the scope to deal with the user/permission side during model migrations. There's just no promises that we can keep there. It's expected behavior that if you migrate as different users that you'd have to reset up any access for users that are valid on the new home controller for a model after migration.