It looks to me like an Event hasOne category (instead of belongsTo). A Category can have many events.
So, when you write Event::with('categories') you are saying to use the categories() method on the Event model as the definition for the relationship.
Its that that is broken, you can ignore everything else.
By testing in reverse, you have proven that your category_id column is correct on your events table.
So, my assumption is that it is something to do with the pluralisation.
Now then since Event has the category_id column, it means that Event BelongsTo the Category, and only ONE category, but your relationship is called categories. I believe this messes with laravel magic Foo
rename the relationship category to reflect its singular nature, and all should be well.
Please or to participate in this conversation.