... in Factory Bot it's not sufficient to simply create a model instance
Factory Bot is not built to work with controllers, as it is focused solely on the object. As the repo description states, it is "A library for setting up Ruby objects as test data."
Now in my other tests I want all those 'side effects' to be available ... I need to run the whole #create action from the controller.
Think of Factory Bot as only there to mock model data for a test. Your factories don't care about what you have in your controller and views.
If you want to test controller actions, you should look at controller specs or request specs. (Links assume use of rspec.)
When writing a controller or request spec, you can use your factory to create an object that you can then use within your controller/request spec, therefore testing the effect your create action has on that object.
I have a large and complicated #create method in my controller.
I'd also suggest breaking your create action up if it's getting long. Two ways to accomplish this are through controller concerns or service objects. Both of these methods would also make testing easier because you can test each concern/service object separately.
You may also consider moving tasks into the background (or on the client side) if they become expensive because that can hold up the request and negatively affect performance.
To answer your questions directly:
What is the syntax for running the controller action in the factory file?
There isn't one because this is not what Factory Bot is built for.
Is that a normal practice for this sort of thing?
No.
Or should I avoid depending on controller's create action and write a minimal version of it in the factory?
Nope. But if the controller gets long and messy, feel free to break the logic up among concerns or service objects.