public function reject(callable $predicate): ArrayCollection
    {
        $items = [];

        foreach ($this->items as $key => $value) {
            if (!$predicate($value, $key)) {
                $items[$key] = $value;
            }
        }

        return new static($items);
    }