Think of job as something that you can defer. Given your question, definitely the first four doesn't qualify to be a background (asynchronous job). Better to place these logic directly into controller (or Model if you prefer) and let the final job be just sending the confirmation mail.
If you still want to stick with jobs but get things done synchronously, what I do is to make the base job class, add a method to return what is desired and in the handle method call the main method, i.e
/**
* This method can be used to call the job synchronously and return the desired result
*/
public function run() {
... do your task here
return whatever is nedded ...
}
/**
* This method will be called when job is fetched from quque. No return possible
*/
public function handle() {
$this->run();
}
This way i can schedule the job as well as run it synchronously, whenever i want.