Сложные условия при выборке через QB в Laravel

При выборке можно конструировать условия любой сложности. Для этого в метод orWhere нужно параметром передать анонимную функцию, в которой будут писаться сгрупированные команды:

app/Http/Controllers/PostController.php<?php
  $posts = DB::table('posts')
    ->where('id', '=', 3)
    ->orWhere(function($query) {
      // тут пишем сгрупированные команды
    })
  ->get();
?>

Внутри функции будет доступен объект $query, к которому можно применять методы построителя запроса.

app/Http/Controllers/PostController.php<?php
  $posts = DB::table('posts')
    ->where('id', '=', 3)
    ->orWhere(function($query) {
      $query
        ->where('likes', '>', 10)
        ->where('likes', '<', 50);
    })
  ->get();
?>

В результате к базе выполнится следующий запрос:

sqlSELECT * FROM posts WHERE id = 3 OR (likes > 10 AND likes > 50)
Задание 1

Получите юзеров, у которых зарплата равна 500 либо возраст от 20 до 30.

Задание 2

Получите юзеров, у которых возраст от 20 до 30, либо зарплата от 400 до 800.