//In below example i have filtered users based on dob by providing date range. $application_date = explode('-', request('application_date')); $start_date = Carbon::createFromFormat('d/m/Y', trim($application_date[0]))->format('Y-m-d'); $end_date = Carbon::createFromFormat('d/m/Y', trim($application_date[1])); $end_date = $end_date->modify('next day'); $result = User::whereHas("userAditionalData", function ($q) use ($start_date, $end_date) { $q->whereBetween('data->dob->field_value', [$start_date, $end_date->format('Y-m-d')]); }); // description: Here user has one to one relation with UserAditionalData table. // In UserAditionalData table we have a json column named "data".