public function sort(callable $callback = null) { $items = $this->items; $callback ? uasort($items, $callback) : uasort($items, function ($a, $b) { if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }); return new static($items); }