public function finalArguments($self, Arguments $arguments): Arguments
    {
        $finalArguments = $this->arguments->all();

        if ($this->prefixSelf) {
            array_unshift($finalArguments, $self);
        }
        if ($this->suffixArgumentsObject) {
            $finalArguments[] = $arguments;
        }

        if ($this->suffixArguments && $arguments) {
            $finalArguments = array_merge($finalArguments, $arguments->all());
        }

        return new Arguments($finalArguments);
    }