public function allocateWithTaxTo(int $n): array
    {
        $method = $this->hasTax() ? 'afterTax' : 'withoutTax';

        $results = [];
        $allocates = static::asMoney($this->getAmountWithTax())->allocateTo($n);

        foreach ($allocates as $allocate) {
            $results[] = static::{$method}($allocate->getAmount(), $this->getTax());
        }

        return $results;
    }