Hide the option of Payment method "No Payment Required" based on user role I used module "No payment required" for giving extra payment method as per my client requirement.

I created a site with two user roles: 1. Merchant, 2. Customer.

Option "No payment required" should only display to users with "Customer" role, which is given permission by Merchant. I have searched in google but there is no luck.
In Drupal Commerce each payment method is essentially a rule. So just like with any rule, you'll need to add your required condition to that payment method rule.

Find Payment Method Configuration page - admin/commerce/config/payment-methods. 

You'll see payment method "No Payment Required (Payment)" in the list of "Enabled payment method rules" (if it is enabled). If not enabled - enable that payment method.

Then click Edit next to that rule, and add condition "User has roles". Select the role "Customer", save, test and you're done.