Hi,
As long as you didn't remove the "payment" view from your checkout workflow, it should not be possible for someone to finish an order without a payment method as that view make sure that a payment method is selected just before the order creation unless the total amount is 0.
And since I suppose that the total amount is not 0, the only conclusion is that you removed that payment view from the checkout workflow on your website. Add it back and you won't have the issue. Instead of removing it, I would recommend to hide it with CSS. It will look exactly the same for your customers but that way you'll be sure that an order cannot complete without a payment method and the system will reselect automatically the payment method upon changes made to the cart, unlike how it is right now on your website.