private async Task CompletePurchaseAsync(double changeDue, Product product)
        {
            _vendingMachineDisplay.PrintGratitude();
            ReturnChange(changeDue);
            _vendingMachineHardware.EjectItem(product);

            await Task.Delay(800);  //Delay to simulate the machine resetting. Not really idea but there you have it.

            _vendingMachineDisplay.PrintInsertCoin();
        }