It seems like trans('texts.message.sample_body') targeting trans() can also be of type object<Symfony\Component...on\TranslatorInterface>; however, MJErwin\Clockwork\Message::setContent() does only seem to accept string, maybe add an additional type check?
This check looks at variables that are passed out again to other methods.
If the outgoing method call has stricter type requirements than the method itself, an issue is raised.
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: