In a custom Magento 2 module, I have some code that successfully creates an order from a quote and sets the status to "pending".
After payment, I would like to programmatically validate the order, generate the invoice and send the confirmation email to the client.
The code that sets the status to complete:
// Update the status
$order = $this->orderFactory->create()->loadByIncrementId($orderIncrementId);
$order->setStatus('complete');
$order->save();
Unfortunately, this doesn't generate an invoice and send the final email. How are we supposed to perform these action programmatically from an existing/pending order?