Move user update logic into user service