here i am trying to render this macbook model multiple times with diffrent images but it is only rendering one time. How can i render it multiple time with same 3d model?

"use client";

import { Environment, ScrollControls } from "@react-three/drei";
import { Canvas } from "@react-three/fiber";
import React, { memo } from "react";
import { motion } from "framer-motion";
import "../styles/MacbookModel.css";
import MacContainer from "./models/MacContainer";

const MacbookModel = memo(() => {
  return (
    <motion.div
      className="macbook-container"
      initial={{ opacity: 0 }}
      animate={{ opacity: 1 }}
      transition={{ duration: 1 }}
    >
      <Canvas camera={{ fov: 12, position: [0, -10, 220] }}>
        <Environment files={"/macbook_model/studio_small_09_4k.hdr"} />
        <ScrollControls pages={2} damping={0.1} distance={1.5}>
          <MacContainer />
        </ScrollControls>
      </Canvas>
    </motion.div>
    
  );
});

export default MacbookModel;

import { useGLTF, useScroll, useTexture } from "@react-three/drei";
import { useFrame } from "@react-three/fiber";
import React from "react";
import * as THREE from "three";

interface Meshes {
  [key: string]: THREE.Object3D<THREE.Object3DEventMap> & { material?: THREE.Material };
}

const MacContainer = () => {
  const model = useGLTF("/macbook_model/mac.glb");
  const meshes: Meshes = {};
  let tex = useTexture("/rishigreen.png");
  tex.wrapS = THREE.ClampToEdgeWrapping;
  tex.wrapT = THREE.ClampToEdgeWrapping;
  tex.repeat.set(1, 1);
  
  model.scene.traverse((e) => {
    meshes[e.name] = e;
  });

  if (meshes.screen) {
    meshes.screen.rotation.x = THREE.MathUtils.degToRad(180);
  }

  let data = useScroll();

  useFrame((state, delta) => {
    meshes.screen.rotation.x = THREE.MathUtils.degToRad(180 - data.offset * 90);
  });

  if (meshes.matte && meshes.matte.material) {
    const matteMaterial = meshes.matte.material as THREE.MeshStandardMaterial;
    matteMaterial.map = tex;
    matteMaterial.emissiveIntensity = 0;
    matteMaterial.metalness = 0;
    matteMaterial.roughness = 1;
    matteMaterial.map.offset.set(0, 0);
    matteMaterial.map.repeat.set(1, 1);
  }

  return (
    <group position={[0, -10, 20]}>
      <primitive object={model.scene} />
    </group>
  );
};

export default MacContainer;