You can use the DB facade and just do
DB::select('<your query>');
In your case I would make a database view of the first part of the query and then use a simple query on it.
CREATE OR REPLACE view some_view AS
SELECT t1.date, t1.hours, t3.name AS resource, t2.customer, t1.type, t1.invoice, t1.description FROM timesheet AS t1 INNER JOIN customers AS t2 ON t1.customer = t2.id INNER JOIN users AS t3 ON t1.resource = t3.id;
Then create a model for it so you can
SomeView::where('field1', 'LIKE', '%' , $search , '%')
->orWhere()
->orWhere()
->get();