You can use a union for it
https://laravel.com/docs/7.x/queries#unions
But since it's 20 tables I think it's better to create a view and query that view.
Something like this in your migration
public function up()
{
DB::statement(
"CREATE OR REPLACE VIEW search_views AS
SELECT title, 'books'
FROM books
UNION ALL
SELECT title, 'games'
FROM games
UNION ALL
SELECT title, 'movies'
FROM movies;"
);
}
Then you can do something like
$records = SearchView::where('title', $request->title)->get();