Broken Job, need help fixing this up

Okay so to start, I do know why my job in question is broken, but I just dont know how I would fix it. Here is my job:


TEAM_SS = DarkRP.createJob("Secret Service", {
    color = Color(100, 20, 20, 255),
       model = {
        "models/player/suits/male_01_closed_coat_tie.mdl",
        "models/player/suits/male_03_closed_coat_tie.mdl",
        "models/player/suits/male_05_closed_coat_tie.mdl",
        "models/player/suits/male_07_closed_coat_tie.mdl",
        "models/player/suits/male_09_closed_coat_tie.mdl"
    },
    description = [[You are responsible for protecting the mayor.
    Take care of the old fellow, he is vanuarable to terrorists all the time! Before he enters a room, you need to make sure its secure.]],
    weapons = {"m9k_sig_p229r", "m9k_mp5", "weaponchecker"},
    command = "ssbq1",
    max = 2,
    salary = 65,
    admin = 0,
    vote = false,
    hasLicense = false,
	hasRadio = true,
    ammo = {
        ["pistol"] = 500,
		["357"] = 500,
		["AR2"] = 500,
		["Buckshot"] = 500,
		["SMG1"] = 500,
    },
    category = "Civil Protection",
	
	customCheck = fn.Compose{fn.Not, fn.Null, fn.Curry(fn.Filter, 2)(FindMetaTable("Player").isMayor), player.GetAll},
	CustomCheckFailMsg = "There needs to be a Mayor before becoming a Secret Service!",
		PlayerLoadout = function(ply) ply:SetArmor(25) end;
		
		
		
customCheck = function(ply)
            if ply:GetUTimeTotalTime() >= 14400 then
                return true
            elseif CLIENT or table.HasValue({"VIP", "SuperVIP", "Owner", "SuperAdmin", "Admin", "Mod"}, ply:GetNWString("usergroup")) then
                if ply:GetUTimeTotalTime() >= 0 then
                    return true
                else
                    if CLIENT then
                        return true
                    else
                        return false
                    end
                end
            else
                return false
            end
        end,
       CustomCheckFailMsg = "You need 4 hours of playtime to become this job!"		
})

Okay so the point of this job is to make it so Secret Service is only allowed to be joined when theres a Mayor online, which was working. This is the piece of code that controlled that:


	customCheck = fn.Compose{fn.Not, fn.Null, fn.Curry(fn.Filter, 2)(FindMetaTable("Player").isMayor), player.GetAll},
	CustomCheckFailMsg = "There needs to be a Mayor before becoming a Secret Service!",

And this next piece of code controls the job limit:


customCheck = function(ply)
            if ply:GetUTimeTotalTime() >= 14400 then
                return true
            elseif CLIENT or table.HasValue({"VIP", "SuperVIP", "Owner", "SuperAdmin", "Admin", "Mod"}, ply:GetNWString("usergroup")) then
                if ply:GetUTimeTotalTime() >= 0 then
                    return true
                else
                    if CLIENT then
                        return true
                    else
                        return false
                    end
                end
            else
                return false
            end
        end,
       CustomCheckFailMsg = "You need 4 hours of playtime to become this job!"

I know the job timer portion is messy, but its the only code ive gotten to work. Theres also a portion in there for vip/staff ranks that lets them skip the time.

I know the issue is because I have 2 customchecks, so is there a way to isolate them or make them work together?

I want it so when users try to join ss, it says there needs to be a mayor, and then there is a mayor, it says they need more time.