Sounds like you want to redistribute the queue workers across multiple servers instead of just one, correct?
I'm not sure what your current setup is - having a worker run as a supervisord jobs is pretty normal, and restarting the job might make sense if it's set to exit when it finishes running, but that depends on which variety of queue:work you may be using in Laravel 5.1
In any case, any queue worker system can do this well - I would suggest using something like beanstalkd over just the default "database" queue system (or no system at all), since queue systems help prevent jobs from getting pulled more than once (and other timing issues) which is important when using more than one worker.
In that setup, you have a single instance of beanstalkd running, and it's responsibility is to handle out jobs to as many workers as you decide to run.
One thing I often use instead of beanstalkd is SQS, since it's pretty easy to setup and usually only costs pennies. Having one less thing to manage is always nice!
One minor drawback to SQS is it's use of "visibility timeout", where once a job is taken, it has x seconds to complete (you can set that yourself, up to 12 hours I believe) - if your jobs take a longer than that time, then the job becomes visible again. It's important to set that value for each job, otherwise the job may become visible again and you may end up with more than one worker churning on it.