Refactor sign-up post to handle all validations and persist