design – Business Logic on UI vs Cron/Background Job

In our application some business logic execute when customer do an action on UI and some business logic execute on a cron jobs.

I have read some where that we should only keep minimal business logic on UI and let the cron jobs do the heavy work, so that we can immediately show a message to the customer without making him/her wait and do the intensive work in cron jobs.

On the other hand, I also read some where that we should execute all the business logic upfront so there is no need for any cron job.

What is the common option companies are following/practicing in software engineering?