Add password hash generation to user model