whereNotIn('id',DB::raw('SELECT `room_id` ...')
должен выглядеть как whereNotIn('id', [1,2,3,4,5])
после выполнения подзапроса для валидного выполнения, а результат выполнения DB::raw(...) возвращает данные не в таком формате. Нужно выполнить его отдельно, результат преобразовать в корректный массив и его уже передать в основной запрос. DB::raw('SELECT `room_id` FROM `orders` WHERE `hotel_id` = '.$request->hotel_id.' WHERE `date_from` < '.$to.' AND `date_to` > '.$from.'')
У вас два слеша перед
text.txt
, а надо один