Issue #3613222: Let the payment step route on a resolver outcome (pay, no_payment, empty)
Adds a route outcome to the payable resolver contract so the payment step can carry the run on, or show a message, instead of always offering payment.
PayableResolverInterface::routeOutcome()returnspay,no_paymentorempty;PayableResolverBasedefaults it fromresolve()(pay when a Payable, empty otherwise).PaymentInteractionroutes on it:no_paymentauto-signals with no landing page;emptyshows a configurableempty_messageplus the author-configured outcome buttons (no amount, no Go to payment);payis unchanged.- New translatable
empty_messagesetting and its config schema key. - Kernel test
PaymentRouteOutcomeTestwith a small test-only resolver.
Ref #3613222.