I found a way to kinda achieve what I need but it's not a clean solution.
I setup a restrictions profile that blocks cellular data, access to settings, and others. This profile is linked to a time schedule set for off hours. So the schedule is set for 12am to 7am and from 5pm to 11:55pm for every day of the week. That way, if within the scheduled time, the profile will kick in and block what I need to have it blocked.
Now, to make the phone work while in the office during regular business hours, I setup another restrictions profile that enables everything that was disabled in the scheduled restrictions profile, but this profile is linked to a geofence area- the office. Therefore, while the phone is within the geofence area and not within the hours specified in time schedule profile, it will keep the profile on the phone and everything on the phone will work. As soon as the the clock hits 5pm the time schedule profile will kick in and restrict the phone again until it is 7am the next day.
By the way, I do not disable WIFI but only allow our access point. That way, when the data on the phone is disabled and the phone is in the office, it will use the WIFI for the agent to communicate with the console if needed.
I know it's not pretty and sometimes, when the phone is not restricted, the cellular data toggle is off so the user thinks the phone is not working when all needs to be done is turn the cellular data toggle button on. Also, sometimes the time schedule profile is not removed from the phone when it should. Wish there was a better way to do this.