If they can't be purchased so why display a payment method ?
Why not display only a message ?
If all the products are free, you display a message, the payment methods are not displayed, and the checkout can be finished.
In the checkout options, you can set the default order status to "confirmed" and in each payment methods to "created".
By this way the Hire process give a confirmed status and no payment, and the regular process create a "created" order and take the customer to the payment to confirm the order.