I think you best put it into the Activity model (or a trait, if you want to keep the model clean). For the method itself, you won't have much other options than implementing each action individually. Maybe you can combine multiple actions when you use switch-case, but the hardest part will probably be translating the action into a verb.
Alternatively, you could also put it into a blade component. This would make sense if you plan on having your notifications look nice, e.g. if you look at the following HTML
<span class="activity">
<span class="activity-user">User</span> pushed
<span class="activity-count">5</span> commits to
<span class="activity-repository">
<a href="/path/to/example-repo">example-repo</a>
</span>.
</span>
you'll notice that you can't just create the same afterwards if you compile your activity into a plain text sentence.