[payment-builder] reuse one builder everywhere, move custom creation logic to factory.