- $items = ArrayHelper::multiPropertySort($items, [
-   ['column' => 'first_ap_date', 'order' => 'asc'],
-   ['column' => 'name', 'order' => 'asc'],
-   ['column' => 'status', 'order' => 'asc'],
- ]);
- public static function multiPropertySort(Collection $collection, array $sorting_instructions)
- {
-   return $collection->sort(function ($a, $b) use ($sorting_instructions) {
-     foreach ($sorting_instructions as $sorting_instruction) {
-       $a[$sorting_instruction['column']] = (isset($a[$sorting_instruction['column']])) ? $a[$sorting_instruction['column']] : '';
-       $b[$sorting_instruction['column']] = (isset($b[$sorting_instruction['column']])) ? $b[$sorting_instruction['column']] : '';
-       if (empty($sorting_instruction['order']) or strtolower($sorting_instruction['order']) == 'asc') {
-         $x = static::numGreater($a[$sorting_instruction['column']], $b[$sorting_instruction['column']]);
-       } else {
-         $x = static::numGreater($b[$sorting_instruction['column']], $a[$sorting_instruction['column']]);
-       }
-       if ($x != 0) {
-         return $x;
-       }
-     }
-     return 0;
-   })->values();
- }