scikit learn – how to use SMOTE & feature selection together in sklearn pipeline?

from imblearn.pipeline import Pipeline
from imblearn.over_sampling import SMOTE    
smt = SMOTE(random_state=0)

pipeline_rf_smt_fs = Pipeline(
    (
        ('preprocess',preprocessor),
        ('selector', SelectKBest(mutual_info_classif, k=30)),
         ('smote',smt),        
        ('rf_classifier',RandomForestClassifier(n_estimators=600, random_state =2021))
    )
)

i am getting below error:
All intermediate steps should be transformers and implement fit and transform or be the string ‘passthrough’ ‘SMOTE(random_state=0)’ (type <class ‘imblearn.over_sampling._smote.SMOTE’>) doesn’t

I believe smote has to be use post feature selection process. Any help on this would be very helpful.