Firstly, there are noise words in there. If there is no other kind of pricing in that context beside product pricing, &quot;product&quot; is useless. If the order of operations is perfectly clear from the program flow, &quot;After&quot; is useless. &quot;But&quot; is a useless conjunction which doesn&#x27;t add any information to &quot;EmailSent&quot;.<p>This kind of thing can be broken into multiple Booelan variables:<p><pre><code>   bool pricingUpdated;

   bool deliverySucceeded;

   bool emailSent;
</code></pre>
These can be initialized or assigned at various points in the flow. Then later we can have:<p><pre><code>   if (pricingUpdated &amp;&amp; !deliverySucceeded &amp;&amp; emailSent) ...</code></pre>