register( new NoGatewayConfiguredRule(), 10 ); $set->register( new ZeroTotalRule(), 20 ); $set->register( new PayOnSiteOnlyRule(), 30 ); $set->register( new DepositRequiredRule(), 40 ); $set->register( new ServiceRequiresPrepaymentRule(), 50 ); $set->register( new GlobalPrepaymentRule(), 60 ); return $set; } /** * Build the default step registry. * * @param PaymentStepRuleSet|null $rules Payment rules (created when null). */ public static function step_registry( ?PaymentStepRuleSet $rules = null ): StepRegistry { $rules = $rules ?? self::payment_rules(); $registry = new StepRegistry(); $registry->register( new ServiceStep(), 10 ); $registry->register( new ExtrasStep(), 20 ); $registry->register( new LocationStep(), 30 ); $registry->register( new AgentStep(), 40 ); $registry->register( new DatetimeStep(), 50 ); $registry->register( new DetailsStep(), 60 ); $registry->register( new CartStep(), 70 ); $registry->register( new PaymentStep( $rules ), 80 ); $registry->register( new ConfirmationStep(), 90 ); return $registry; } }