Rotating a model with mouse

I’m trying to rotate a model using the mouse on a 2d plane.
I’ve got it so it works initially where moving the mouse up rotates it so it rolls back and forth sort of thing and moving the mouse side to side rotates the model left and right.
However when the model is rotated 90 degrees on x axis and when I move on y axis I can’t figure out how to make it go up instead of roll (so it moves to where the mouse is pointing, relatively).
This is my code so far:

local rotationCF = cf()
local rotateWeapon = false

function rotateCurrentWeapon(step)
	if not rotateWeapon then
		rotationCF = rotationCF:lerp(cf(), 10*step)
	else
		rotationCF = rotationCF * ang(0, 0, rad(deltaX)) * ang(0, rad(-deltaY), 0) * ang(0, 0, 0)
	end
	move:SetPrimaryPartCFrame(workspace.Part.CFrame * rotationCF)
end

a video:

External Media

what I’m trying to replicate:

External Media

if anyone could help it would be greatly appreciated!