If your business has a low risk for fraud, you may want to automatically mark all orders as "Completed" and payments as "Paid". Please see the topic on for more information on fraud and reversable payments.
To do so, you can simply create a Place order action rule under Configuration > Checkout menu and set it to automatically mark all order status as "Completed" and payment status as "Paid". You can also use the custom rule to only set the statuses when certain conditions are met (e.g. update status only for Credit card payments and not by Wire transfer or large amounts exceeding $500).
Please note if you sell recurring products, you should employ the Custom rule in your Place order action to test for successful payment prior to setting the order as "Completed". In a typical checkout flow when the credit card declines, the customer is prompted to retry entering his credit card until it succeeds therefore there is no need to test for successful payment since the checkout form handles it for you. A recurring order is different than a normal checkout because the process is automatic and happens behind the scene. The Storefront creates the recurring order even if the credit card declined since there is no way to prompt the user to retry. As such, it's important to test for successful payment in your custom rule before setting the order status as "Completed". For example, you can use an xls:if instruction to test for successful payment prior to executing the other instructions. Please see Gateway.ResponseCodeType for more information.