This script DOES work, but i dont know what makes it different from the other two.
local spinner = script.Parent
local tweenServive = game:GetService('TweenService')
local startatfive = 5
while true do
local rotateBy = spinner.Rotation + startatfive
local tweenSpin = tweenServive:Create(spinner, TweenInfo.new(1), {Rotation = rotateBy} )
tweenSpin:Play()
repeat task.wait() until tweenSpin.Completed
startatfive += 0.1
end