Is there a way in Search and Promote that we can customize our search results based on the user profile.?
There is no out of box approach available here but if you would like to have different searches for different cases this might be possible using ranking.
Note that this only works by expressly including this special sp_sr rank argument - any search that specifies a different sp_sr, or possibly no sp_sr at all, might bypass this trick. Note that if there is no sp_sr specified in the query, the first defined rank (as it appears in Settings > Metadata > Definitions) gets used. So, if this special "hiding" rank is the first one defined, it’ll be used by default if no sp_sr is specified.
As long as end-users can’t fiddle with backend query args, this might be an answer.'