How do I add extra cost with cash on delivery? I have implemented and eshop with commerce module in drupal 8. How can I add extra cost in case the customer chooses the cash on delivery method? I use payment module. Is there any solution or some other alternative? I tried rules also, but there is not any event that is triggered on payment method selection.
It's been a long time since this has been asked, but I'm adding my input here since I bumped into this while looking for the exact same thing for one of my projects. The way I found as the cleanest and most straight forward, while reading through the documentation, is the use of an order processor class that would check the current order for the use of the payment method in question and add an adjustment accordingly. You can have a look here on information as to how to setup an order processor https://docs.drupalcommerce.org/commerce2/developer-guide/orders/order-refresh-and-process. 
The class has to implement the \Drupal\commerce_order\OrderProcessorInterface and it has to provide an implementation of the process method. 

class MyCustomProcessor implements OrderProcessorInterface {

    public function process(OrderInterface $order) {
        $payment = $order-&gt;get('payment_method')-&gt;first()-&gt;entity;
//   or 
        $payment = $order-&gt;get('payment_gateway')-&gt;first()-&gt;entity;

//... your logic here depending on what you'd like to do 

        $order-&gt;addAdjustment(new Adjustment([
            'type' =&gt; 'fee',
            'label' =&gt; 'Payment method fee',
            'amount' =&gt; new Price($fee, 'EUR')
        ]));

    }
}