Extract with_success to a mixin
Automatic retries + fallback for charge_commission