Как сделать запрос на последние 3 элемента?

Знатоки, у меня есть код, который вытаскивает все значения, а как мне сделать, чтобы вытаскивало последние 3?

 public static function getReceivedBills($filter = [])
{
    $query = auth()->user()->receivedBills();
    $query->with('owner')->orderByDesc('bills.created_at')->select('bills.*');

    if (isset($filter['owner']) && $filter['owner'] != '') {
        $query->leftJoin('users as owner','bills.owner_id','=','owner.id');
        $query->where('owner.login','like', '%'.$filter['owner'].'%');
    }

    if (!empty($filter['start']) && !empty($filter['end'])) {
        if(!empty($filter['start']['from'])) {
            $query->whereRaw('DATE(bills.date_from) >= "' . $filter['start']['from'] . '"');
        }
        if(!empty($filter['start']['to'])) {
            $query->whereRaw('DATE(bills.date_from) <= "' . $filter['start']['to'] . '"');
        }
        if(!empty($filter['end']['from'])) {
            $query->whereRaw('DATE(bills.date_to) >= "' . $filter['end']['from'] . '"');
        }
        if(!empty($filter['end']['to'])) {
            $query->whereRaw('DATE(bills.date_to) <= "' . $filter['end']['to'] . '"');
        }
    }

    if (isset($filter['is_paid'])) {
        if($filter['is_paid'] == "0") {
            $query->where('is_paid','0');
        } else {
            $query->where('is_paid','1');
        }
    }

    return $query;
}

Ответы (1 шт):

Автор решения: No_Name

$query->take(3)->orderBy('id','DESC')

→ Ссылка