Validate source on payment if payment method's requires a source

* Fixes a multitude of errors related to creating payments with no source in the checkout flow
this feels a bit hacky to me, can we either provide a source or change the bogus gateway to say it doesn't require a source somewhere more sustainable than this individual spec?