Club is the top level resource. Every other resource belongs to the Club either directly or indirectly. Currently CRUD methods are restricted to a SuperUser.
class Club < ApplicationRecord has_many :groups, :dependent => :destroy has_many :group_players, through: :groups end
If a Club has multiple courses, I've been through that and it is not easy. Maxwell AFB used to have two courses and players played from multiple tee. GolfGaggle managed Quotas by Course and Tee. Lets just say it was difficult to display all the options. Computing the Quotas was not difficult, just displaying information. My suggestion would be to create Groups for each course. Players then can be duplicated from one group to another.