query(); if (($where['keyword'] ?? '') !== '') { $keyword = '%' . $where['keyword'] . '%'; $query->where(function (Builder $builder) use ($keyword) { $builder->where('code', 'like', $keyword) ->orWhere('name', 'like', $keyword) ->orWhere('remark', 'like', $keyword); }); } foreach (['setting_type', 'parent_id', 'is_enabled'] as $field) { if (($where[$field] ?? '') !== '') { $query->where($field, $where[$field]); } } return $query; } }