You have soil humidity sensor and flow sensor inputs and pump flow output and probably more but just for example tying those into the same expressions creates dependencies that take a lot of structure to write and are harder to read and change than need be.
Even before thinking code, think about all the steps you need and model how the steps should flow.
Look for ways to simplify the process, again without thinking code. Break big steps down and see if there are simpler arrangements, look for bits that you don't or hardly need at all to cut out if possible.
There is a programming adage that was old in 1985 when Niklaus Wirth used it to introduce Modula 2 and try and get people to quit teaching Pascal (he invented both),
If you want to make a program, write it twice and throw the first one away.
That's because the second one is made knowing the mistakes of the first.
By modeling the process you can avoid the worst mistakes.
For this, it's pretty simple but still you want to be able to change or add to it without problems.
Every sensor should have its own short independent section to handle it.
Each section passes or gets information from others through variables, not by being inside of if-else or any other logic structure where reading one depends on the state of another. When you do the latter, tracing through your own code gets more complicated with every new thing. The code becomes what is known as spaghetti code and/or the can of worms because every time you open the can (to make a change) it takes a bigger can (memory space) to put them back.
INPUT
So you have a part that reads humidity and sets a value that means LOW, MIDDLE, HIGH that your process section will use.
INPUT
You have a part that reads flow and sets a value in a similar way. If the process section doesn't need fine steps then don't use them. If it can be 2 or 3 state simple then the process code will be likewise simple and short.
PROCESS
You have a part that processes the values from the inputs and sets a variable that tells the pump section to turn on or off.
OUTPUT
You have a part that turns the pump on or off depending on the value that PROCESS sets.
These are parts of a machine that runs in time and loop() is the wheel of that time and it should run at over 40 KHz given how little it has to do. It's going to notice and react to changes that fast. Do you think you'll need an interrupt to catch anything quicker?
You might be able to do the above with 20 lines of code not counting setup().
What will take you the longest is looking up and learning enough C that none of the lines has any part that you don't understand. Annnnnnd you will be writing more lines just to have serial print you a trace of events and reactions that let you monitor operations and see how it works together.
But only if you're up for it. The learning will take longer than you might expect because there's a lot and you probably have some kind of life to deal with at the same time, real time multitasking of your own.
But the reward... knowledge... is being able to write powerful code in simple ways.