Access scriptable object instance from another class

I have a class “FirstClass” which is a ScriptableObject. Inside that class I’m instantiating another class “EventfulClass” that has events that other classes should be able to subscribe to.

How can I get a reference to that class instance which only exists within the scriptable object?

public class FirstClass : ScriptableObject {
    public EventfulClass eventfulClass;
    public GameObject  EventfulClassTemplate;
    public GameObject  GOInstance;

        public void StartEventfulClass()
        {
            if (eventfulClass is null)
            {
                GOInstance = Instantiate (EventfulClassTemplate);
                DontDestroyOnLoad (GOInstance);
                eventfulClass = GOInstance.GetComponent<EventfulClass> ();
                eventfulClass.EventReceived += OnEventReceived;
            }
    }

i.e. in another class

public class AnotherClass : MonoBehaviour {
    public EventfulClass eventfulClass;  // <- how to set that reference

    void Start {
        eventfulClass.EventReceived += OnEventReceived;
    }
}

I think you can only reference it when you create the instance of the scriptableObject like this:
eventfulClass = ScriptableObject.CreateInstance ();

Also this * GOInstance.GetComponent () * doesn’t work because EventfulClass is a scriptable object, not a component.