Apply coupon before payments are created and processed

Payments can't be created before a promotion discount is applied,
otherwise we get inconsistent values between payment amount and order
totals

2-0-stable needs the fix as well. CI looks green to me