In general, anything where you do not want to make a user wait around for a response, such as communicating with 3rd party API's like sending emails. Also, automations such as scheduled jobs where you may want to loop/chunk through all of your users to update many records at once, basically actions that are not triggered by your end users, but rather automated/scheduled.
Example: In my app, users can start a video call. The action itself goes through the controller, and my Call model is created, but the "call" itself has not yet been setup with my 3rd party video provider to obtain a video room. So, as far as the users are concerned, they get to wait in a skeleton loader while my queue handles the official call setup behind the scenes. Once setup, the users client side will see the call is ready and will put them right in.