How can i keep global scale of object while instantiate it

Hi I have a gameobject which name is gridBuildList
I attach gameObjects in it because adding each element to list with hand is so tiring
[196038-one.png*|196038]

Then i attach these gameObjects to a list which name is gridBuild with that loop

public GameObject gridBuildList;

public List<GameObject> gridBuild = new List<GameObject>();
 
foreach (Transform a in gridBuildList.GetComponent<Transform>())
        {
            gridBuild.Add(a.gameObject);
        }

Finally I have a grid tile list i spawn my buildings on these grid tiles

for (int i = 0; i < tiles.Count; i++)
        {
            Vector3 gridTile = tiles*.transform.position;*

var spawnedTle = Instantiate(gridBuild[Random.Range(0,gridBuild.Count)], gridTile, Quaternion.identity);
}
Briefly i spawn random gameObjects from gridBuild list on gridTile positions
My problem is scale is wrong, black tile is grid i spawn object on it
[196039-two.png|196039]*
*
*
this is how it should work
spawnedTle.transform.localScale = new Vector3(4.5f, 4.5f); (i get this result with these code but it isn’t reliabe solution)

Imgur: The magic of the Internet (Forum don’t let me upload more than 2 photos)

So it fixes the problem
be careful with instantiate function you should give it gameObject.transform not transform.position