Move shared payment logic to payment plugin...