поиск может длиться хоть полчаса (очень большое количество разных источников)
Может тогда стоит отправлять запрос на поиск, ставить его в очередь, а результат записывать в БД, тогда пользователю не нужно будет ждать.
Сюда же можно и общение с сервером через сокеты прикрутить, чтобы сразу отобразить результат поиска, если пользователь ещё никуда не ушёл, но в базу всё равно лучше записывать результаты такой длительной операции.
а) Передать параметры поиска в Laravel из браузера
Как я и сказал, отправляем обычный запрос на сервер, но сам поиск делаем в
очереди. По завершению поиска пишем результат в БД и выполняем
broadcast нужного события.
б) Вернуть результат обработки от Laravel конкретному браузеру, а не всем подряд вообще
Для этого есть приватные каналы, подробнее в документации:
https://laravel.com/docs/5.4/broadcasting#authoriz...
P.S. Laravel позволяет реализовать это без особых усилий, уже всё готово, нужно просто внимательно почитать документацию.