public function withStatus($code, $reason = '')
    {
        // TODO: Add \InvalidArgumentException

        $static = clone $this;

        $static->code = $code;

        $static->reason = $reason ?: $static->codes[$code];

        return $static;
    }