There's no native way to do this with hashcat. Instead, you must generate a list of masks that contain all of the permutations that fit your criteria.
The common tool for this is policygen from the PACK toolkit. My answer here outlines how to use it.
For your use case, it would be something like this (assuming 8-character passwords and a minimum of 3 digits):
$ policygen --minlength=8 --maxlength=8 --mindigit=3 \
-o len8mindigit3.masks
_
PolicyGen 0.0.2 | |
_ __ __ _ ___| | _
| '_ \ / _` |/ __| |/ /
| |_) | (_| | (__| <
| .__/ \__,_|\___|_|\_\
| |
|_| iphelix@thesprawl.org
[*] Saving generated masks to [len8mindigit3.masks]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
Pass Lengths: min:8 max:8
Min strength: l:None u:None d:3 s:None
Max strength: l:None u:None d:None s:None
[*] Generating [compliant] masks.
[*] Generating 8 character password masks.
[*] Total Masks: 65536 Time: 76 days, 18:50:04
[*] Policy Masks: 21067 Time: 3 days, 8:11:03
$ head len8mindigit3.masks
?d?d?d?d?d?d?d?d
?d?d?d?d?d?d?d?l
?d?d?d?d?d?d?d?u
?d?d?d?d?d?d?d?s
?d?d?d?d?d?d?l?d
?d?d?d?d?d?d?l?l
?d?d?d?d?d?d?l?u
?d?d?d?d?d?d?l?s
?d?d?d?d?d?d?u?d
?d?d?d?d?d?d?u?l
$ tail len8mindigit3.masks
?s?s?s?s?d?d?d?s
?s?s?s?s?d?d?l?d
?s?s?s?s?d?d?u?d
?s?s?s?s?d?d?s?d
?s?s?s?s?d?l?d?d
?s?s?s?s?d?u?d?d
?s?s?s?s?d?s?d?d
?s?s?s?s?l?d?d?d
?s?s?s?s?u?d?d?d
?s?s?s?s?s?d?d?d
You would then supply that file of masks to hashcat.