Since you explicitly set the provider to Chef::Provider::Service::Init, it won't call Chef::Provider::Service::Debian or Chef::Provider::Service::Redhat.
The simplest solution here is to remove "provider Chef::Provider::Service::Init" in the case of sysvinit.
This way the correct provider will be selected and enable will be available.

I'm not sure how this will work with FC (systemd). Let's not worry about this for now, I'll do some tests.