public static function filter($input, $limit = 24) { return Discounts::with('product')->where(function ($query) use($input) { if (array_key_exists('product_id', $input) && strlen($input['product_id'])) { $query->where('product_id', '=', $input['product_id']); } if (array_key_exists('discount_type', $input) && strlen($input['discount_type'])) { $query->where('discount_type', '=', $input['discount_type']); } if (array_key_exists('status', $input) && strlen($input['status'])) { $query->where('status', '=', $input['status']); } })->orderBy('created_at', 'desc')->orderBy('status', 'asc')->paginate($limit); }