Clean up promotion rule's eligibility errors.

Extract some duplicate code and make things a little prettier.