How to set the geometry shader with glDrawArrayInstanced

Hi! I draw entities using glDrawArraysInstanced but when I use a geometry shader, vertices positions are not multiplied by the world matrix and everything is drawn at the same place.

Here is the vertex shader code :

const std::string linkedListVertexShader = R"(#version 460 core
                                                    layout (location = 0) in vec3 position;
                                                    layout (location = 1) in vec4 color;
                                                    layout (location = 2) in vec2 texCoords;
                                                    layout (location = 3) in vec3 normals;
                                                    layout (location = 4) in mat4 worldMat;
                                                    uniform mat4 projectionMatrix;
                                                    uniform mat4 viewMatrix;
                                                    uniform mat4 textureMatrix;
                                                    out vec4 vColor;
                                                    out vec2 vTexCoord;
                                                    void main() {
                                                        gl_Position = projectionMatrix * viewMatrix * worldMat * vec4(position, 1.f);
                                                        vTexCoord = (textureMatrix * vec4(texCoords, 1.f, 1.f)).xy;
                                                        vColor = color;

And here is the geometry shader code :

const std::string geometryShader = R"(#version 460 core
                                                      #extension GL_EXT_geometry_shader4 : enable
                                                      layout (triangles) in;
                                                      layout (triangle_strip, max_vertices = 4) out;
                                                      uniform int layer;
                                                      in vec4 vColor[];
                                                      in vec2 vTexCoord[];
                                                      out vec4 frontColor;
                                                      out vec2 fTexCoords;
                                                      void main() {
                                                        /*gl_Layer = layer;*/
                                                        gl_Position = gl_in[0].gl_Position;
                                                        frontColor = vColor[0];
                                                        fTexCoords = vTexCoord[0];
                                                        gl_Position = gl_in[1].gl_Position;
                                                        frontColor = vColor[1];
                                                        fTexCoords = vTexCoord[1];
                                                        gl_Position = gl_in[2].gl_Position;
                                                        frontColor = vColor[2];
                                                        fTexCoords = vTexCoord[2];

Why are alla my entities drawn at the same place ?
Doesn’t the geometry shader perform the matrix multiplication with instanced rendering ?