Charge user after status of order is changed with eCommerce I am using the Drupal 7 eCommerce kickstart distribution.

I want to sell service (like cleaning, gardening...), and I want user to be able to create order, but I want to give them ability to do payment after service is done.

Is there any way to do this, to make user able to make payment after they create order.
You can use a payment gateway that allows for Authorization Only transactions. This will authorize a certain amount, but will not actually charge the credit card.  This is what gas stations, hotels, etc. do. They charge a preset amount, and then finalize the actual amount later.

commerce_authnet offers this capability. In the settings for the payment gateway you just set Authorize Only.

Once the administrator is ready to finalize the payment, they would go to the Orders page, and choose Payment on the Order.  You then 'capture' the amount to finalize the payment.

You can fine tune who has access to the Payments page on the Permissions page.