Issue #3610001: Settle against what the order owes: Payable carries authorize and capture amounts

Follow-up to kessai #3609963 (merged): kessai now mirrors the provider and never invents an amount, so a free booking that needs a card on file authorizes a real amount (its deposit) rather than a hard-coded verification charge. This aligns orchestra_payment with that model.

  • Payable carries two amounts: authorizeAmount (held at the gateway) and captureAmount (taken at settle), validated so the capture never exceeds what was authorized. Equal for a plain charge; they differ when a step authorizes more than it will take (a free booking that authorizes a deposit but owes nothing).
  • The payment step authorizes authorizeAmount. The SettleTask re-resolves the payable from the order through the same resolver and captures what the order owes now (zero owed releases the authorization), so the outcome comes from the order, not from the amount held at the gateway.
  • A shared PayableResolverConfigTrait carries the resolver picker, its settings, and the resolve helper, used by both the payment interaction and the settle task.

Kernel tests updated and green.

Merge request reports

Loading