How to politely ask for recommendation letters to professors
I don't think you're doing anything incorrectly.  Sometimes people get busy, sometimes people are thoughtless and inconsiderate.  I'm afraid you're going to have to use a combination of persistence and politeness.  The tricky thing with the politeness is that you don't want to lay it on too thick -- as that in itself can get annoying.

Please consider using a combination of email and phone.

If things are still going badly after about two weeks, then I think it's time to contact a department secretary, dean, assistant chair or assistant chair.

I can see that in some departments it might be easier to pester someone by knocking on their door, but that really shouldn't be necessary; and you can use the department administration to accomplish the same thing.

(As mentioned in a comment -- please, no gifts.  It's not the custom in the U.S. and therefore would be too weird.)