Hey @boubou
First of all listen to this podcast episode. There are some cool explanation of query builder vs eloquent ORM which is the issue here: https://pca.st/5scdurn0
To make long story short you need to have eloquent collection to use whereIn or orWhereIn and so on. You try to use query builder here that does not have those methods available. You will be able to use those methods after you call ->get() at the end of query and then apply those methods to resulting collection. Have a look here: https://laravel.com/docs/master/queries#retrieving-results
Anyhow replying to your question:
$flights = App\Models\Flight::all();
$your_result = $flights->whereIn('type', $type)
->orWhereIn('category1', $data1)
->orWhereIn('category2', $data2)
->where('subcategory', $data3)
->get();
Hope this helps.
Or even simpler:
$your_result = App\Models\Flight::whereIn('type', $type)
->orWhereIn('category1', $data1)
->orWhereIn('category2', $data2)
->where('subcategory', $data3)
->get();