Token key generation moved to model before_validation callback