Factorize $(x^2+y^2+z^2)(x+y+z)(x+y-z)(y+z-x)(z+x-y)-8x^2y^2z^2$ I am unable to factorize this over $\mathbb{Z}:$ 
$$(x^2+y^2+z^2)(x+y+z)(x+y-z)(y+z-x)(z+x-y)-8x^2y^2z^2$$
Since, this from an exercise of a book (E. J. Barbeau, polynomials) it must have a neat factorization.
I tried to guess some factors by putting $x-y=0$, $x+y=0$, $x=0$.
I also notice that the expression is symmetric with respect to $x, y, z$.
I am trying to factor it without expanding the whole thing though the process of expansion can be eased by observing that $(x+y+z)(x+y-z)(y+z-x)(z+x-y)$ is a well known expression (Heron's formula), so one already knows it is 
$$2(x^2y^2+y^2z^2+z^2x^2)-x^4-y^4-z^4$$
 But I think there should be a way to do this without expanding the thing.
So, can someone tell me the factorization (preferably with the steps) or any hints as to  how should I approach this problem.
 A: Note that
\begin{eqnarray}
&&(x^2+y^2+z^2)(x+y+z) (x+y-z) (y+z-x) (z+x-y)-8 x^2 y^2 z^2\\
&=&(x^2+y^2+z^2)(-x^4+2 x^2 y^2+2 x^2 z^2-y^4+2 y^2 z^2-z^4)-8x^2y^2z^2\\
&=&(x^2+y^2+z^2)[(-x^4+2 x^2 y^2-y^4)+(2 x^2 z^2+2 y^2 z^2-z^4)]-8 x^2 y^2 z^2\\
&=&(x^2+y^2+z^2)[z^4-(x^2-y^2)^2+2(x^2+y^2-z^2)z^2]-8 x^2 y^2 z^2\\
&=&[(x^2+y^2-z^2)+2z^2][(z^2+x^2-y^2)(z^2-x^2+y^2)+2(x^2+y^2-z^2)z^2]-8 x^2 y^2 z^2\\
&=&[(x^2+y^2-z^2)+2z^2][(x^2-y^2+z^2)(-x^2+y^2+z^2)+2(x^2+y^2-z^2)z^2]-8 x^2 y^2 z^2\\
&=&(x^2+y^2-z^2)(x^2-y^2+z^2)(-x^2+y^2+z^2)+2z^2[(x^2-y^2+z^2)(-x^2+y^2+z^2)\\
&&+(x^2+y^2-z^2)^2+2(x^2+y^2-z^2)z^2-4 x^2 y^2]\\
&=&(x^2+y^2-z^2)(x^2-y^2+z^2)(-x^2+y^2+z^2).
\end{eqnarray}
A: This is not an answer, but, I think, a track for alternative demonstrations.
In fact, your allusion to Herons's formula made me googling, till I reached the nice on-line article of American Mathematical Monthly by Daniel Klain entitled "An intuitive derivation of Heron's formula" http://faculty.uml.edu/dklain/Klain-Heron.pdf 
He is interested by isosceles tetrahedra, defined by the property that each pair of opposite sides have the same length, whence three lengths $a,b,c$. D. Klain gives an interesting "algebraic" proof of the following formula for their volume $V$: 
$$V^2 = \dfrac{1}
{72}
(a^2 + b^2 − c^2)(a^2 − b^2 + c^2)(−a^2 + b^2 + c^2).$$
where you recognize our factorized formula.
Edit: I would like to be more precise in the interest of connecting "our" formula with volumes. But for that, it is necessary to understand what is a the Cayley-Menger determinant that I cannot develop here (see e.g., http://mathworld.wolfram.com/Cayley-MengerDeterminant.html ). 
Using a formula in this reference, the square of the volume of an isosceles tetrahedron is;
$$\dfrac{1}{288}\begin{vmatrix}
0 & 1 & 1 & 1 & 1\\
1 & 0 & a^2 & b^2 & c^2\\
1 & a^2 & 0 & c^2 & b^2\\
1 & b^2 & c^2 & 0 & a^2\\
1 & c^2 & b^2 & a^2 & 0
\end{vmatrix}$$
Dropping factor $\dfrac{1}{288}$, this determinant can be developed in many ways, yielding different forms ; among them the initial form or its factorized version (up to factor 4):
$$4(-a^2 + b^2 + c^2) (a^2 - b^2 + c^2) (a^2 + b^2 - c^2) $$
A: 
We write the expression as polynomial in  $z^2$. This way we obtain
  \begin{align*}
P(x,y,z)&=(x^2+y^2+z^2)(x+y+z)(x+y-z)(y+z-x)(z+x-y)-8x^2y^2z^2\\
&=-(x^2+y^2+z^2)\left((x+y)^2-z^2\right)\left((x-y)^2-z^2\right)-8x^2y^2z^2\\
&=-z^6+(x^2+y^2)z^4+(x^2-y^2)^2z^2-(x^2-y^2)^2(x^2+y^2)
\end{align*}

Analyzing  the   last line  and    looking for a substitution for $z^2$          which makes this polynomial vanish it's not too hard to see that
\begin{align*}
z^2=x^2+y^2
\end{align*}
does the job.   

We  obtain
  \begin{align*}
P(x,y,z)=(x^2+y^2-z^2)Q(x,y,z)
\end{align*}
  with     $Q(x,y,z)$ a homogeneous polynomial in $x,y$ and $z$.

Division of $P(x,y,z)$ by this factor gives
\begin{align*}
\frac{-z^6+(x^2+y^2)z^4+(x^2-y^2)^2z^2-(x^2-y^2)^2(x^2+y^2)}{-z^2+x^2+y^2}=z^4-(x^2-y^2)^2
\end{align*}
From the  RHS we derive the   other     irreducible   factors of $P(x,y,z)$
\begin{align*}
z^2-(x^2-y^2)\qquad\text{and}\qquad   z^2+(x^2-y^2)
\end{align*}

and conclude
  \begin{align*}
P(x,y,z)=(x^2+y^2-z^2)(y^2+z^2-x^2)(z^2+x^2-y^2)
\end{align*}

