Move finish level login into User model
Finish levels in a transaction
Add tests for the User model