Ваш вопрос довольно двусмысленный, но, похоже, вам нужно use
$request
в функции with
.
$deposits = Deposit::with(['member' => function ($query) use ($request) {
$query->where('branch_id', $request->branch_id)
->where('status', 'running')->get();
}])->where('user_id', $request->user_id)
->whereDate('deposit-date', '>=', $from_date)
->whereDate('deposit-date', '<=', $to_date)
->get();
Но метод with
не отфильтрует ваш запроспросто ограничит количество участников, возвращаемых со всеми депозитами.Это не поиск в таблице участников.
ОБНОВЛЕНИЕ 04/12/2018
Без проверки документов вообще и полностью с моей головы.
Deposit::with('member', function($query) use($request){
$query->where('branch_id', $request->branch_id)
->orWhere('village_id', $request->village_id)
})->where(function($query) use($request) {
$query->where('user_id', $request->user_id)
->whereDate('deposit-date', '>=', $from_date)
->whereDate('deposit-date', '<=', $to_date)
})->orWhereHas('member', function($query) use($request){
$query->where('branch_id', $request->branch_id)
->orWhere('village_id', $request->village_id)
})->get();