How to inherit from the same object twice?

I’m creating a weapons system but I have a slight issue. I’ve created a player object and I’d like for all the weapon objects to inherit from this player object. The issue is that when I create a new weapon object, the previous weapon objects are overwritten. Below is some example code demonstrating this:

local player_class = {}
player_class.__index = player_class
function player_class.new(player)
	local object = {}
	setmetatable(object, player_class)
	
	object.player = player
	
	return object
end



local weapon = {}
weapon.__index = weapon
setmetatable(weapon, player_class)
function weapon.new(name, player_object)
	local object = player_object
	setmetatable(object, weapon)
	object.name = name
	
	return object
end


game:GetService("Players").PlayerAdded:Connect(function(playerAdded)
	local player_object = player_class.new(playerAdded)
	
	local weapon_1 = weapon.new("weapon_1", player_object)
	local weapon_2 = weapon.new("weapon_2", player_object)
	
	print(weapon_1.name)
	print(weapon_2.name)
	
	--[[
	Output
	weapon_2  -  Server - Script:32
	weapon_2  -  Server - Script:33
	
	Desired output
	weapon_1  -  Server - Script:32
	weapon_2  -  Server - Script:33
	]]--
end)

How could I get the desired output while still maintaining the same structure?

local player_class = {}
player_class.__index = player_class
function player_class.new(player)
	local object = {}
	setmetatable(object, player_class)
	object.player = player
	return object
end

local weapon = {}
weapon.__index = weapon
setmetatable(weapon, player_class)
function weapon.new(name, player_object)
	local object = player_object
	setmetatable(object, weapon)
	object.name = name
	return object
end

game:GetService("Players").PlayerAdded:Connect(function(playerAdded)
	local player_object = player_class.new(playerAdded)
	local weapon_1 = weapon.new("weapon_1", player_object)
	local weapon_2 = weapon.new("weapon_2", player_object)
	print(weapon_1.name)
	print(weapon_2.name)
	--[[
	Output
	weapon_2  -  Server - Script:32
	weapon_2  -  Server - Script:3
	
	Desired output
	weapon_1  -  Server - Script:32
	weapon_2  -  Server - Script:33
	]]--
end)

Just fixing the format.